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 相关文章推荐
Centos5.x下升级python到python2.7版本教程
Feb 14 Python
基于python的多进程共享变量正确打开方式
Apr 28 Python
python计算两个数的百分比方法
Jun 29 Python
python中reader的next用法
Jul 24 Python
Python 实现域名解析为ip的方法
Feb 14 Python
python and or用法详解
Jun 26 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
Jul 06 Python
Python zip函数打包元素实例解析
Dec 11 Python
pycharm运行程序时看不到任何结果显示的解决
Feb 21 Python
Python基于BeautifulSoup爬取京东商品信息
Jun 01 Python
利用Python将list列表写入文件并读取的方法汇总
Mar 25 Python
python模板入门教程之flask Jinja
Apr 11 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 socket编程
2015/05/13 PHP
PHP关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
PHP中PCRE正则解析代码详解
2019/04/26 PHP
最好用的省市二级联动 原生js实现你值得拥有
2013/09/22 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
使用js实现数据格式化
2014/12/03 Javascript
js自定义回调函数
2015/12/13 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
学习使用jquery iScroll.js移动端滚动条插件
2020/03/24 Javascript
JS代码防止SQL注入的方法(超简单)
2016/04/12 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
JS自动生成动态HTML验证码页面
2017/06/14 Javascript
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
React学习笔记之高阶组件应用
2018/06/02 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
发布一款npm包帮助理解npm的使用
2019/01/03 Javascript
微信小程序通过websocket实时语音识别的实现代码
2020/08/19 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
Python配置文件解析模块ConfigParser使用实例
2015/04/13 Python
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
2021/01/24 Python
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
热能动力工程毕业生自荐信
2013/11/07 职场文书
企划经理的岗位职责
2013/11/17 职场文书
校园活动策划方案
2014/06/13 职场文书
会计学专业求职信
2014/07/17 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
瞿秋白纪念馆观后感
2015/06/10 职场文书
MySQL 开窗函数
2022/02/15 MySQL