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实现数通设备端口监控示例
Apr 02 Python
Python实现获取操作系统版本信息方法
Apr 08 Python
python对list中的每个元素进行某种操作的方法
Jun 29 Python
selenium python 实现基本自动化测试的示例代码
Feb 25 Python
pow在python中的含义及用法
Jul 11 Python
Python 3.8正式发布,来尝鲜这些新特性吧
Oct 15 Python
Python如何使用函数做字典的值
Nov 30 Python
利用Python自动化操作AutoCAD的实现
Apr 01 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
python之pygame模块实现飞机大战完整代码
Nov 29 Python
python数据可视化使用pyfinance分析证券收益示例详解
Nov 20 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
全国FM电台频率大全 - 18 湖南省
2020/03/11 无线电
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
php头像上传预览实例代码
2017/05/02 PHP
[JS源码]超长文章自动分页(客户端版)
2007/01/09 Javascript
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
Textarea根据内容自适应高度
2013/10/28 Javascript
javascript中的if语句使用介绍
2013/11/20 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
2017/03/01 Javascript
Angularjs处理页面闪烁的解决方法
2017/03/09 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
2017/03/09 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
vue修改对象的属性值后页面不重新渲染的实例
2018/08/09 Javascript
[22:59]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
有关wxpython pyqt内存占用问题分析
2014/06/09 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
Python 闭包的使用方法
2017/09/07 Python
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
Python闭包函数定义与用法分析
2018/07/20 Python
python字典一键多值实例代码分享
2019/06/14 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
python自动下载图片的方法示例
2020/03/25 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
英国最大的高品质珠宝和手表专家:Goldsmiths
2017/03/11 全球购物
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
《尊严》教学反思
2014/02/11 职场文书
2015年小学教师培训工作总结
2015/07/21 职场文书
迎国庆主题班会
2015/08/17 职场文书
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL