python使用urllib模块和pyquery实现阿里巴巴排名查询

 更新时间:2014年01月16日 14:45:48   作者:  
这篇文章主要介绍了python库urllib及pyquery基本东西的应用,实现阿里巴巴关键词排名的查询,其中涉及到urllib代理的设置,pyquery对html文档的解析

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实现随机漫步算法

    这篇文章主要为大家详细介绍了python实现随机漫步算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • 浅谈python socket函数中,send与sendall的区别与使用方法

    浅谈python socket函数中,send与sendall的区别与使用方法

    下面小编就为大家带来一篇浅谈python socket函数中,send与sendall的区别与使用方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Python with语句用法原理详解

    Python with语句用法原理详解

    这篇文章主要介绍了Python with语句用法原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • pytorch 删除空权重模型文件夹的方法

    pytorch 删除空权重模型文件夹的方法

    如果文件夹exp开头的文件夹,里面没有pt pth模型文件,就把目录删掉,本文通过示例代码介绍pytorch 删除空权重模型文件夹的方法,感兴趣的朋友一起看看吧
    2023-11-11
  • Python实现屏幕截图的两种方式

    Python实现屏幕截图的两种方式

    这篇文章主要介绍了Python实现屏幕截图的两种方式及对这两者的特点和用法进行详细解释,感兴趣的朋友一起看看
    2018-02-02
  • Python实现识别XSS漏洞的方法详解

    Python实现识别XSS漏洞的方法详解

    XSS(跨站脚本攻击)作为一种常见的网络安全漏洞,经常被黑客用来攻击网站。这篇文章主要介绍了如何利用Python 识别 XSS 漏洞,需要的可以参考一下
    2023-02-02
  • Python pyside6编写一个广告图片生成器

    Python pyside6编写一个广告图片生成器

    这篇文章主要为大家详细介绍了Python如何使用pyside6编写一个广告图片生成器,可以快速制作包含产品图片和文字的广告图片,需要的可以参考下
    2025-01-01
  • Python实现找到同名文件并复制到其他文件夹中

    Python实现找到同名文件并复制到其他文件夹中

    这篇文章主要为大家介绍了如何基于Python语言,实现依据某一文件夹中大量文件的名称复制另一文件夹中的同名文件,文中的示例代码简洁易懂,需要的可以参考一下
    2023-05-05
  • python pandas 如何替换某列的一个值

    python pandas 如何替换某列的一个值

    python pandas 如何替换某列的一个值?今天小编就为大家分享一篇python pandas 实现替换某列的一个值方法,具有很好的参考价值,希望对大家有所帮助
    2018-06-06
  • Python中str.join()简单用法示例

    Python中str.join()简单用法示例

    这篇文章主要介绍了Python中str.join()简单用法,结合实例形式分析了Python中str.join()用于连接生成新字符串的相关操作技巧,需要的朋友可以参考下
    2018-03-03

最新评论