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的身份证号码自动生成程序
Aug 15 Python
Python 序列的方法总结
Oct 18 Python
Django权限机制实现代码详解
Feb 05 Python
简单实现Python爬取网络图片
Apr 01 Python
利用Python如何实现数据驱动的接口自动化测试
May 11 Python
详解通过API管理或定制开发ECS实例
Sep 30 Python
python+openCV利用摄像头实现人员活动检测
Jun 22 Python
扩展Django admin的list_filter()可使用范围方法
Aug 21 Python
python中property和setter装饰器用法
Dec 19 Python
python怎么对数字进行过滤
Jul 05 Python
OpenCV读取与写入图片的实现
Oct 13 Python
pytorch中的torch.nn.Conv2d()函数图文详解
Feb 28 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 过滤危险html代码
2009/06/29 PHP
php 无法加载mcrypt.dll的解决办法
2013/04/03 PHP
浅析关于PHP位运算的简单权限设计
2013/06/30 PHP
php读取csv数据保存到数组的方法
2015/01/03 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
老生常谈文本文件和二进制文件的区别
2017/02/27 PHP
php实现websocket实时消息推送
2018/03/30 PHP
非常漂亮的JS代码经典广告
2007/10/21 Javascript
javascript EXCEL 操作类代码
2009/07/30 Javascript
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
使用Chrome浏览器调试AngularJS应用的方法
2015/06/18 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
2015/06/19 Javascript
NodeJS安装图文教程
2018/04/19 NodeJs
在angular 6中使用 less 的实例代码
2018/05/13 Javascript
深入浅析angular和vue还有jquery的区别
2018/08/13 jQuery
修改vue+webpack run build的路径方法
2018/09/01 Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
2019/01/15 Javascript
vue element upload实现图片本地预览
2019/08/20 Javascript
Vue替代marquee标签超出宽度文字横向滚动效果
2019/12/09 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
详解Python中最难理解的点-装饰器
2017/04/03 Python
浅谈python中的正则表达式(re模块)
2017/10/17 Python
python 通过xml获取测试节点和属性的实例
2018/03/31 Python
Python之循环结构
2019/01/15 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
python 实现socket服务端并发的四种方式
2020/12/14 Python
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
党员一帮一活动总结
2014/07/08 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
鸟的天堂导游词
2015/01/31 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书
创业计划书之酒厂
2019/10/14 职场文书
Python中的 Set 与 dict
2022/03/13 Python