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 相关文章推荐
使用pyecharts无法import Bar的解决方案
Apr 23 Python
Python读取properties配置文件操作示例
Mar 29 Python
python根据文章标题内容自动生成摘要的实例
Feb 21 Python
python+opencv实现摄像头调用的方法
Jun 22 Python
python+opencv像素的加减和加权操作的实现
Jul 14 Python
简单了解django缓存方式及配置
Jul 19 Python
python实现倒计时小工具
Jul 29 Python
Python3将ipa包中的文件按大小排序
Apr 17 Python
Python爬取12306车次信息代码详解
Aug 12 Python
获取CSDN文章内容并转换为markdown文本的python
Sep 06 Python
python中delattr删除对象方法的代码分析
Dec 15 Python
详解python字符串驻留技术
May 21 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
一个目录遍历函数
2006/10/09 PHP
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
JavaScript 面向对象的之私有成员和公开成员
2010/05/04 Javascript
基于jquery的图片幻灯展示源码
2012/07/15 Javascript
javascript阻止scroll事件多次执行的思路及实现
2013/11/08 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
JavaScript适配器模式详解
2017/10/19 Javascript
vue2.0使用swiper组件实现轮播效果
2017/11/27 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
vue源码解析之事件机制原理
2018/04/21 Javascript
vue-cli3.0 环境变量与模式配置方法
2018/11/08 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
Python数据结构之Array用法实例
2014/10/09 Python
linux 下实现python多版本安装实践
2014/11/18 Python
python分析作业提交情况
2017/11/22 Python
python 利用栈和队列模拟递归的过程
2018/05/29 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
就业推荐表自我鉴定
2013/10/29 职场文书
程序员岗位职责
2013/11/11 职场文书
银行出纳岗位职责
2013/11/25 职场文书
五一家具促销方案
2014/01/10 职场文书
农贸市场管理制度
2014/01/31 职场文书
红旗方阵解说词
2014/02/12 职场文书
经典广告词大全
2014/03/14 职场文书
2014年秋季开学演讲稿
2014/05/24 职场文书
倡议书的格式写法
2015/04/28 职场文书
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python
mysql 索引合并的使用
2021/08/30 MySQL