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脚本来获取Google搜索结果的示例
May 04 Python
老生常谈Python之装饰器、迭代器和生成器
Jul 26 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
Jul 13 Python
Python实现Linux监控的方法
May 16 Python
python飞机大战pygame游戏框架搭建操作详解
Dec 17 Python
Python hmac模块使用实例解析
Dec 24 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
Feb 27 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
Sep 05 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
Sep 30 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
Dec 03 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
Feb 24 Python
python基础学习之生成器与文件系统知识总结
May 25 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将向Java靠拢
2006/10/09 PHP
php中显示数组与对象的实现代码
2011/04/18 PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
php json_encode与json_decode详解及实例
2016/12/13 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
JavaScript的eval JSON object问题
2009/11/15 Javascript
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
Jquery实现跨域异步上传文件总结
2017/02/03 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
十大热门的JavaScript框架和库
2017/03/21 Javascript
详解vue.js2.0父组件点击触发子组件方法
2017/05/10 Javascript
JS逻辑运算符短路操作实例分析
2018/07/09 Javascript
浅析Python中的多进程与多线程的使用
2015/04/07 Python
Python  Django 母版和继承解析
2019/08/09 Python
python读取指定字节长度的文本方法
2019/08/27 Python
python自动化实现登录获取图片验证码功能
2019/11/20 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
css3 实现圆形旋转倒计时
2018/02/24 HTML / CSS
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
2013年军训通讯稿
2014/02/05 职场文书
员工安全承诺书
2014/05/22 职场文书
食品委托检验协议书范本
2014/09/12 职场文书
Python中Cookies导出某站用户数据的方法
2021/05/17 Python
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python