python使用urllib模块和pyquery实现阿里巴巴排名查询
2014-01-16 00:00
1251 查看
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)
相关文章推荐
- python使用urllib模块和pyquery实现阿里巴巴排名查询
- Python 使用urllib2模块实现断点续传下载
- Python:使用threading模块实现多线程编程三[threading.Thread类的重要函数]
- Python中使用urllib2模块编写爬虫的简单上手示例
- 在python中实现生产者和消费者的例子(四):使用thread模块和全局变量
- Python:使用threading模块实现多线程(转)
- Python:使用threading模块实现多线程(转)
- 使用python-whois模块查询域名信息
- 使用python实现短语查询
- 使用Python的SnowNLP模块实现情感分析
- Python中使用urllib2模块编写爬虫的简单上手示例
- Python:使用threading模块实现多线程编程
- Python 使用 OS 模块实现目录遍历
- 享学课堂-在python3中如何使用urllib模块?
- Python:使用threading模块实现多线程编程一[综述]
- Python:使用threading模块实现多线程
- [Python module]使用threading模块实现多线程编程一[综述]
- 使用Python和Splinter实现12306火车票查询与抢票
- Python中的urllib模块使用详解
- python中使用telnetlib模块远程实现连接