python使用urllib模块和pyquery实现阿里巴巴排名查询


Posted in Python onJanuary 16, 2014

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 相关文章推荐
Python 2.x如何设置命令执行的超时时间实例
Oct 19 Python
使用Python爬取最好大学网大学排名
Feb 24 Python
python版本单链表实现代码
Sep 28 Python
python opencv摄像头的简单应用
Jun 06 Python
解决django同步数据库的时候app models表没有成功创建的问题
Aug 09 Python
解析python实现Lasso回归
Sep 11 Python
详解Python中pyautogui库的最全使用方法
Apr 01 Python
如何真正的了解python装饰器
Aug 14 Python
scrapy实践之翻页爬取的实现
Jan 05 Python
利用Python第三方库实现预测NBA比赛结果
Jun 21 Python
Python+tkinter实现高清图片保存
Mar 13 Python
Python Matplotlib绘制动画的代码详解
May 30 Python
python3.3教程之模拟百度登陆代码分享
Jan 16 #Python
python解析发往本机的数据包示例 (解析数据包)
Jan 16 #Python
python多线程扫描端口示例
Jan 16 #Python
python发送arp欺骗攻击代码分析
Jan 16 #Python
分析python服务器拒绝服务攻击代码
Jan 16 #Python
python获取豆瓣电影简介代码分享
Jan 16 #Python
linux系统使用python获取cpu信息脚本分享
Jan 15 #Python
You might like
PHP常用函数小技巧
2008/09/11 PHP
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/21 PHP
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
2013/04/08 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
2014/07/02 PHP
php上传图片之时间戳命名(保存路径)
2014/08/15 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
php自定义hash函数实例
2015/05/05 PHP
PHP中preg_match函数正则匹配的字符串长度问题
2015/05/27 PHP
PHPCMS手机站伪静态设置详细教程
2017/02/06 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
js用正则表达式来验证表单(比较齐全的资源)
2013/11/17 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
JS实现选择TextArea内文本的方法
2015/08/03 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
jquery 键盘事件的使用方法详解
2017/09/13 jQuery
JS实现自定义弹窗功能
2018/08/08 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
Python解决鸡兔同笼问题的方法
2014/12/20 Python
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
Python下Fabric的简单部署方法
2015/07/14 Python
Flask入门之上传文件到服务器的方法示例
2018/07/18 Python
python应用文件读取与登录注册功能
2019/09/23 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
Python解析多帧dicom数据详解
2020/01/13 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
澳大利亚婴儿喂养品牌:Cherub Baby
2018/11/01 全球购物
篝火晚会主持词
2014/03/25 职场文书
人事行政经理岗位职责
2014/06/18 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
客户经理岗位职责大全
2015/04/09 职场文书
python多线程方法详解
2022/01/18 Python