在爬蟲爬取信息的過程中,有部分會(huì)出現(xiàn)剛開始采集正常,但是爬取幾次之后就沒有辦法再次采集數(shù)據(jù)了,這基本上就是因?yàn)閕p被爬取的服務(wù)器給禁了,所以在爬取過程中最好添加上代理ip,這樣每爬取一次就切換一次ip,便可減少被封的可能。
首先需要一個(gè)ip的代理池,現(xiàn)在基本上都是付費(fèi),格式基本都是 ip+端口號(hào)
用request模塊進(jìn)行url訪問時(shí),設(shè)置ip代理:
proxies參數(shù):參數(shù)中需要傳進(jìn)一個(gè)對(duì)象對(duì)象中需要兩個(gè)參數(shù)一個(gè)是http一個(gè)是https但是傳遞的內(nèi)容是一樣的
參數(shù)url格式為:http://+ip+端口。
當(dāng)需要進(jìn)行用戶名密碼認(rèn)證的時(shí)候便需要在傳遞兩個(gè)參數(shù):http://+用戶名+密碼+@+ip+端口。
例:
(無需認(rèn)證)
(認(rèn)證)
訪問寫法為:
request.get(url=url,proxies={'http': 'http://admin:admin@175.167.236.26:57114', 'https':'http://admin:admin@175.167.236.26:57114'}}
需要注意的是,雖然你寫好了,而代理服務(wù)器有可能拒絕你代理,會(huì)返回403錯(cuò)誤,所以需要在結(jié)果中判斷響應(yīng)值是不是200,如果進(jìn)行多次請(qǐng)求的時(shí)候建議加上訪問過期時(shí)間,不然你的主機(jī)或者服務(wù)器會(huì)非??D~