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列表解析配合if else的方法
Jun 23 Python
python读取xlsx的方法
Dec 25 Python
解决pycharm的Python console不能调试当前程序的问题
Jan 20 Python
不到40行代码用Python实现一个简单的推荐系统
May 10 Python
python简单实现矩阵的乘,加,转置和逆运算示例
Jul 10 Python
利用python list完成最简单的DB连接池方法
Aug 09 Python
django重新生成数据库中的某张表方法
Aug 28 Python
python3反转字符串的3种方法(小结)
Nov 07 Python
python socket 聊天室实例代码详解
Nov 14 Python
django 多数据库及分库实现方式
Apr 01 Python
快速解决pymongo操作mongodb的时区问题
Dec 05 Python
教你利用Selenium+python自动化来解决pip使用异常
May 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
生成静态页面的PHP类
2006/11/25 PHP
php程序效率优化的一些策略小结
2010/07/17 PHP
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
py文件转exe时包含paramiko模块出错解决方法
2016/08/12 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
NodeJS 模块开发及发布详解分享
2012/03/07 NodeJs
javascript 保存文件到本地实现方法
2012/11/29 Javascript
验证码按回车不变解决方法
2013/03/29 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
jQuery实现伸展与合拢panel的方法
2015/04/30 Javascript
js实现带按钮的上下滚动效果
2015/05/12 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
jquery.tableSort.js表格排序插件使用方法详解
2020/08/12 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
关于react中组件通信的几种方式详解
2017/12/10 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
js实现盒子拖拽动画效果
2020/08/09 Javascript
[02:19]DOTA选手解说齐贺岁
2018/02/11 DOTA
python基础教程之面向对象的一些概念
2014/08/29 Python
浅谈python for循环的巧妙运用(迭代、列表生成式)
2017/09/26 Python
python自动发送邮件脚本
2018/06/20 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
Python2.6版本pip安装步骤解析
2020/08/17 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
超30万乐谱下载:Musicnotes.com
2016/09/24 全球购物
俄罗斯设计师家具购物网站:The Furnish
2019/12/01 全球购物
求职自荐书范文
2013/12/04 职场文书
二年级语文教学反思
2014/02/02 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
中国文明网向国旗敬礼活动精彩寄语2014
2014/09/27 职场文书
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android
MySQL配置主从服务器(一主多从)
2021/08/07 MySQL
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL