首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python urllib模块跟pyquery实现阿里巴巴排名查询

2014-01-22 
python urllib模块和pyquery实现阿里巴巴排名查询python库urllib及pyquery基本东西的应用,实现阿里巴巴关

python urllib模块和pyquery实现阿里巴巴排名查询
python库urllib及pyquery基本东西的应用,实现阿里巴巴关键词排名的查询,其中涉及到urllib代理的设置,pyquery对html文档的解析。

urllib基础模块的应用,通过该类获取到url中的html文档信息,内部可以重写代理的获取方法。

代码:

class ProxyScrapy(object):    def __init__(self):        self.proxy_robot = ProxyRobot()        self.current_proxy = None        self.cookie = cookielib.CookieJar()    def __builder_proxy_cookie_opener(self):                cookie_handler = urllib2.HTTPCookieProcessor(self.cookie)                handlers = [cookie_handler]        if PROXY_ENABLE:            self.current_proxy = ip_port = self.proxy_robot.get_random_proxy()            proxy_handler = urllib2.ProxyHandler({'http': ip_port[7:]})            handlers.append(proxy_handler)        opener = urllib2.build_opener(*handlers)        urllib2.install_opener(opener)        return opener    def get_html_body(self,url):        opener = self.__builder_proxy_cookie_opener()        request=urllib2.Request(url)        #request.add_header("Accept-Encoding", "gzip,deflate,sdch")        #request.add_header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")        #request.add_header("Cache-Control", "no-cache")        #request.add_header("Connection", "keep-alive")        try:            response = opener.open(request,timeout=2)            http_code = response.getcode()            if http_code == 200:                if PROXY_ENABLE:                    self.proxy_robot.handle_success_proxy(self.current_proxy)                html = response.read()                return html            else:                if PROXY_ENABLE:                    self.proxy_robot.handle_double_proxy(self.current_proxy)                return self.get_html_body(url)        except Exception as inst:            print inst,self.current_proxy            self.proxy_robot.handle_double_proxy(self.current_proxy)            return self.get_html_body(url)

热点排行