久久久,被高潮,国精产品一线二线三线av,久久精品一区二区东京热,久久精品国产99国产电影网,久久97精品久久久久久久不卡

使用動態(tài)ip防止被反爬

爬蟲和反爬蟲的對抗并不激烈。今天我們主要討論一個非常重要的對付反爬蟲的手段,那就是IP代理。
 
通常,我們會訪問如下網(wǎng)址:
 
動態(tài)IP模擬器

當(dāng)客戶端向URL所在的服務(wù)器發(fā)起請求時,會攜帶自己的IP地址,這樣服務(wù)器就可以獲得我們的IP地址。當(dāng)這個IP地址在某段時間內(nèi)過于頻繁地發(fā)起請求時,它可能會在某段時間內(nèi)限制其訪問。
 
在編寫爬蟲程序的過程中,為了防止這種情況發(fā)生,有必要使用IP代理。IP代理的原理如下:
 
 
第一步:我們將向代理服務(wù)器發(fā)送請求,并告訴代理服務(wù)器我們想要訪問https://www.zhihu.com。
 
第二步:代理服務(wù)器將代替我們向https://www.zhihu.com發(fā)送請求。
 
第三步:服務(wù)器收到代理服務(wù)器的請求后,將數(shù)據(jù)返回給代理服務(wù)器。
 
第四步:代理服務(wù)器收到服務(wù)器返回的數(shù)據(jù)后,將數(shù)據(jù)發(fā)送給客戶端。
 
這樣,通過代理服務(wù)器向網(wǎng)址所在的服務(wù)器發(fā)送請求,我們就可以完美地隱藏自己的IP,這樣我們的IP就不會被限制訪問。
 
不過,肯定會有代價的。我們需要通過IP代理轉(zhuǎn)發(fā)我們想要的數(shù)據(jù),這自然會導(dǎo)致爬行速度變慢。只有使用原生IP發(fā)起請求是最快的。
 
接下來,像往常一樣,我們使用代碼來演示如何通過IP代理發(fā)起請求:
 
導(dǎo)入請求
 
#自由代理可以從https://www.xicidaili.com/,獲得,但自由ip代理的存活率很低。
 
代理= { 0
 
http:“”183 . 148 . 158 . 64:9999
 
}
 
RES = requests . get(' https://www . Baidu . com ',proxies = proxy)
 
打印(參考文本)
 
#如果可以正確返回結(jié)果,那么當(dāng)前的ip代理是活動的、可用的,否則當(dāng)前的ip代理無效。
 
僅有一個代理ip是不夠的。我們應(yīng)該維護(hù)自己的ip代理池。當(dāng)ip代理失敗時,它將被消除。那么如何維護(hù)一個可用的ip代理池呢?
 
#第一步:通過https://www.xicidaili.com/wt/.獲取ip_list
 
導(dǎo)入請求
 
來自bs4導(dǎo)入美麗組
 
隨機(jī)導(dǎo)入
 
def get_ip_list(url):
 
標(biāo)題= { 0
 
用戶代理“:”Mozilla/5.0(Windows NT 10.0;WOW64)applebwebkit/537.36(KHTML,像Gecko)Chrome/66 . 0 . 3359 . 139 Safari/537.36’
 
}
 
res = requests.get(url,headers = headers)
 
res =美化組(res.text,' html.parser ')
 
結(jié)果= RES . select(# IP _ list tr)
 
對于結(jié)果[1:]中的結(jié)果:
 
ip = result.select('td')[1]。文本
 
port = result.select('td')[2]。文本
 
法官(ip,端口)
 
#獲取ip后,無法直接保存。首先,你應(yīng)該判斷它是否可用。
 
#第二步:確定獲取的ip是否有效。
 
ip_list = []
 
def判斷(ip、端口):
 
代理= { ' http ':IP+':'+端口}
 
嘗試:
 
RES = requests . get(' https://www . Baidu . com ',proxies = proxy)
 
例外:
 
打印(此IP:“+IP+”無效)
 
返回False
 
否則:
 
if 200