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单链表实现代码实例
Nov 21 Python
利用信号如何监控Django模型对象字段值的变化详解
Nov 27 Python
微信跳一跳小游戏python脚本
Jan 05 Python
python smtplib模块自动收发邮件功能(二)
May 22 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
Sep 26 Python
Python: 传递列表副本方式
Dec 19 Python
Win系统PyQt5安装和使用教程
Dec 25 Python
关于Tensorflow分布式并行策略
Feb 03 Python
Python可以实现栈的结构吗
May 27 Python
Python3如何使用多线程升程序运行速度
Aug 11 Python
Python监听剪切板实现方法代码实例
Nov 11 Python
python中entry用法讲解
Dec 04 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连接SQLServer2005 的问题解决方法
2010/07/19 PHP
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
php浏览历史记录的方法
2015/03/10 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
JS获取Table中td值的方法
2015/03/19 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
express默认日志组件morgan的方法
2018/04/05 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
Bootstrap-table自定义可编辑每页显示记录数
2018/09/07 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
2019/11/04 Javascript
JS 5种遍历对象的方式
2020/06/16 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
浅谈python中真正关闭socket的方法
2018/12/18 Python
对django的User模型和四种扩展/重写方法小结
2019/08/17 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
Python使用Paramiko控制liunx第三方库
2020/05/20 Python
Win10下用Anaconda安装TensorFlow(图文教程)
2020/06/18 Python
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
斯洛伐克最大的婴儿食品和用品网上商店:Feedo.sk
2020/12/21 全球购物
失业者真诚求职信范文
2013/12/25 职场文书
写给学生的新学期寄语
2014/01/18 职场文书
店长职务说明书
2014/02/04 职场文书
森林病虫害防治方案
2014/06/02 职场文书
学校欢迎标语
2014/06/18 职场文书
保卫钓鱼岛口号
2014/06/20 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
学习退步检讨书
2014/09/28 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书