python使用urllib模塊和pyquery實(shí)現(xiàn)阿里巴巴排名查詢
urllib基礎(chǔ)模塊的應(yīng)用,通過該類獲取到url中的html文檔信息,內(nèi)部可以重寫代理的獲取方法
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)
相關(guān)文章
詳解Python結(jié)合Genetic?Algorithm算法破解網(wǎng)易易盾拼圖驗(yàn)證
很多網(wǎng)站在登錄或者注冊時都會遇到拼圖驗(yàn)證碼,這種拼圖驗(yàn)證碼實(shí)際上是多個小碎片經(jīng)過重新組合成的一張整體。本文將和大家分享一個基于Python?Genetic?Algorithm的破解拼圖驗(yàn)證碼的辦法,需要的可以參考一下2022-02-02利用Django內(nèi)置的認(rèn)證視圖實(shí)現(xiàn)用戶密碼重置功能詳解
這篇文章主要給大家介紹了關(guān)于利用Django內(nèi)置的認(rèn)證視圖實(shí)現(xiàn)用戶密碼重置功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11Python + Flask 實(shí)現(xiàn)簡單的驗(yàn)證碼系統(tǒng)
這篇文章主要介紹了Python + Flask 制作一個簡單的驗(yàn)證碼系統(tǒng),本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10Python操作csv文件之csv.writer()和csv.DictWriter()方法的基本使用
csv文件是一種逗號分隔的純文本形式存儲的表格數(shù)據(jù),Python內(nèi)置了CSV模塊,可直接通過該模塊實(shí)現(xiàn)csv文件的讀寫操作,下面這篇文章主要給大家介紹了關(guān)于Python操作csv文件之csv.writer()和csv.DictWriter()方法的基本使用,需要的朋友可以參考下2022-09-09使用Python的web.py框架實(shí)現(xiàn)類似Django的ORM查詢的教程
這篇文章主要介紹了使用Python的web.py框架實(shí)現(xiàn)類似Django的ORM查詢的教程,集成的ORM操作數(shù)據(jù)庫向來是Python最強(qiáng)大的功能之一,本文則探討如何在web.py框架上實(shí)現(xiàn),需要的朋友可以參考下2015-05-05