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数组的处理代码
Jan 04 Python
python根据文件大小打log日志
Oct 09 Python
Python中操作文件之write()方法的使用教程
May 25 Python
python选择排序算法实例总结
Jul 01 Python
python生成lmdb格式的文件实例
Nov 08 Python
python实现停车管理系统
Nov 30 Python
对Pytorch神经网络初始化kaiming分布详解
Aug 18 Python
python hashlib加密实现代码
Oct 17 Python
pytorch GAN生成对抗网络实例
Jan 10 Python
python实现文件分片上传的接口自动化
Nov 19 Python
快速解决pymongo操作mongodb的时区问题
Dec 05 Python
Python抖音快手代码舞(字符舞)的实现方法
Feb 07 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/03/23 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
dwr spring的集成实现代码
2009/03/22 Javascript
将CKfinder整合进CKEditor3.0的新方法
2010/01/10 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
验证码按回车不变解决方法
2013/03/29 Javascript
js点击事件链接的问题解决
2014/04/25 Javascript
JavaScript中的比较操作符>、=、
2014/12/31 Javascript
Jquery on方法绑定事件后执行多次的解决方法
2016/06/02 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
深入分析javascript中的错误处理机制
2016/07/17 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
Javascript 实现全屏滚动实例代码
2016/12/31 Javascript
jQuery中的deferred对象和extend方法详解
2017/05/08 jQuery
在Create React App中启用Sass和Less的方法示例
2019/01/16 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
2019/03/05 Javascript
使用axios发送post请求,将JSON数据改为form类型的示例
2019/10/31 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
python在多玩图片上下载妹子图的实现代码
2013/08/13 Python
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
Python协程 yield与协程greenlet简单用法示例
2019/11/22 Python
django 模型字段设置默认值代码
2020/07/15 Python
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
巴西在线鞋店:Shoestock
2017/10/28 全球购物
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
设计总监岗位职责
2013/12/07 职场文书
酒店拾金不昧表扬信
2014/01/18 职场文书
小学生读书感言
2014/02/12 职场文书
科技节口号
2014/06/19 职场文书
销售简历自我评价怎么写
2014/09/26 职场文书
检讨书范文大全
2015/05/07 职场文书
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android