久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

python爬取準(zhǔn)備四定義Opener和設(shè)置代理IP

Handler和Opener

成都創(chuàng)新互聯(lián)是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),網(wǎng)站空間、主機(jī)租用、主機(jī)托管,四川、重慶、廣東電信服務(wù)器租用,雅安服務(wù)器托管,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國(guó)大陸、港澳臺(tái)以及歐美等多個(gè)國(guó)家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。

Handler處理器和自定義Opener

opener是urllib2.OpenerDirector的實(shí)例,我們之前一直在使用urlopen,它是一個(gè)特殊的opener(也就是我們構(gòu)建好的)。

但是urlopen()方法不支持代理、cookie等其他的HTTP/GTTPS高級(jí)功能。所有要支持這些功能:

1.使用相關(guān)的Handler處理器來(lái)創(chuàng)建特定功能的處理器對(duì)象;

2.然后通過(guò)urllib2.build_opener()方法使用這些處理器對(duì)象,創(chuàng)建自定義opener對(duì)象;

3.使用自定義的opener對(duì)象,調(diào)用open()方法發(fā)送請(qǐng)求。

如果程序里所有的請(qǐng)求都使用自定義的opener,可以使用urllib2.install_open()將自定義的opener對(duì)象定義為全局opener,表示如果之后凡是調(diào)用urlopen,都將使用這個(gè)opener(根據(jù)自己的需求來(lái)選擇)

自定義opener()

# _*_ coding:utf-8 _*_
import urllib2
# 構(gòu)建一個(gè)HTTPHandler處理器對(duì)象,支持處理HTTP的請(qǐng)求
http_handler = urllib2.HTTPHandler()
# 調(diào)用build_opener()方法構(gòu)建一個(gè)自定義的opener對(duì)象,參數(shù)是構(gòu)建的處理器對(duì)象
opener = urllib2.build_opener(http_handler)
request = urllib2.Request('http://www.139.com')
# 調(diào)用自定義opener對(duì)象的open()方法,發(fā)送request請(qǐng)求
response = opener.open(request) 
print response.read()

設(shè)置代理IP

很多網(wǎng)站會(huì)檢測(cè)某一段時(shí)間某個(gè)IP的訪(fǎng)問(wèn)次數(shù)(通過(guò)流量統(tǒng)計(jì),系統(tǒng)日志等),如果訪(fǎng)問(wèn)次數(shù)多的不像正常人,它會(huì)禁止這個(gè)IP的訪(fǎng)問(wèn)。

所以我們可以設(shè)置一些代理服務(wù)器,每隔一段時(shí)間換一個(gè)代理,就算IP被禁止,依然可以換個(gè)IP繼續(xù)爬取。

urllib2中通過(guò)ProxyHandler來(lái)設(shè)置使用代理服務(wù)器,使用自定義opener來(lái)使用代理:

代理IP網(wǎng)站:http://www.xicidaili.com/;https://www.kuaidaili.com/free/inha/

# _*_ coding:utf-8 _*_
import urllib2
# 構(gòu)建一個(gè)Handler處理器對(duì)象,參數(shù)是一個(gè)字典類(lèi)型,包括代理類(lèi)型和代理服務(wù)器IP+Port
httpproxy_handler = urllib2.ProxyHandler({'http':'118.114.77.47:8080'})
#使用代理
opener = urllib2.build_opener(httpproxy_handler)
request = urllib2.Request('http://www.baidu.com/s')
#1 如果這么寫(xiě),只有使用opener.open()方法發(fā)送請(qǐng)求才使用自定義的代理,而urlopen()則不使用自定義代理。
response = opener.open(request)
#12如果這么寫(xiě),就是將opener應(yīng)用到全局,之后所有的,不管是opener.open()還是urlopen() 發(fā)送請(qǐng)求,都將使用自定義代理。
#urllib2.install_opener(opener)
#response = urllib2.urlopen(request)
print response.read()

當(dāng)前名稱(chēng):python爬取準(zhǔn)備四定義Opener和設(shè)置代理IP
轉(zhuǎn)載來(lái)源:http://sd-ha.com/article38/jgeosp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、企業(yè)建站、Google、網(wǎng)站建設(shè)、ChatGPT營(yíng)銷(xiāo)型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)