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