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遍历zip文件输出名称时出现乱码问题的解决方法
Apr 08 Python
在 Python 应用中使用 MongoDB的方法
Jan 05 Python
Python给你的头像加上圣诞帽
Jan 04 Python
详解python实现识别手写MNIST数字集的程序
Aug 03 Python
Python Series从0开始索引的方法
Nov 06 Python
Python generator生成器和yield表达式详解
Aug 08 Python
Python实现实时数据采集新型冠状病毒数据实例
Feb 04 Python
python随机模块random使用方法详解
Feb 14 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
Mar 08 Python
python def 定义函数,调用函数方式
Jun 02 Python
python 多线程中join()的作用
Oct 29 Python
教你怎么用Python实现多路径迷宫
Apr 29 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实现快速排序法函数代码
2012/08/27 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
jquery 可排列的表实现代码
2009/11/13 Javascript
JS获得QQ号码的昵称,头像,生日的简单实例
2013/12/04 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
高性能JavaScript DOM编程(1)
2015/08/11 Javascript
基于JS实现PHP的sprintf函数实例
2015/11/14 Javascript
JS使用cookie设置样式的方法
2016/06/30 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
AngularJS动态加载模块和依赖的方法分析
2016/11/08 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
vue实现图片加载完成前的loading组件方法
2018/02/05 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
解决echarts数据二次渲染不成功的问题
2020/07/20 Javascript
python采集博客中上传的QQ截图文件
2014/07/18 Python
python3生成随机数实例
2014/10/20 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
Python学习pygal绘制线图代码分享
2017/12/09 Python
Python获取指定文件夹下的文件名的方法
2018/02/06 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)
2017/08/24 HTML / CSS
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
工作交流会欢迎词
2014/01/12 职场文书
励志演讲稿600字
2014/08/21 职场文书
学前班学生评语
2014/12/29 职场文书
教师病假条范文
2015/08/17 职场文书
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技
golang的文件创建及读写操作
2022/04/14 Golang