本文內(nèi)容:代理ip使用原理,如何在自己的爬蟲里設(shè)置代理ip,如何知道代理ip有沒有生效,沒生效的話是哪里出了問題,個人使用的代理ip(付費(fèi))。
目錄
代理ip原理
? ? ? 輸入網(wǎng)址后發(fā)生了什么呢?
? ? ? 代理ip做了什么呢?
? ? ? 為什么要用代理呢?
?爬蟲代碼中使用代理ip
?代理ip的獲取
?檢驗(yàn)代理ip是否生效
未生效問題排查
? ? 1.請求協(xié)議不匹配
? ? 2.代理失效
代理ip原理
輸入網(wǎng)址后發(fā)生了什么呢?
- 瀏覽器獲取域名
- 瀏覽器渲染結(jié)果
- 四次揮手釋放TCP連接
- 服務(wù)器將查詢結(jié)果返回給瀏覽器
- 瀏覽器通過HTTP協(xié)議向服務(wù)器發(fā)送數(shù)據(jù)請求
- 通過DNS協(xié)議獲取域名對應(yīng)服務(wù)器的ip地址
- 瀏覽器和對應(yīng)的服務(wù)器通過三次握手建立TCP連接
其中涉及到了:
應(yīng)用層:HTTP和DNS
傳輸層:TCP UDP
網(wǎng)絡(luò)層:IP ICMP ARP
代理ip做了什么呢?
簡單一點(diǎn)來說,使用代理ip就是:
原本你的訪問目標(biāo)網(wǎng)站
使用代理ip后你的訪問目標(biāo)網(wǎng)站
?
為什么要用代理ip呢?
我們在爬取數(shù)據(jù)的時候,如果使用自己的真實(shí)ip去訪問目標(biāo)網(wǎng)站,會有很大的風(fēng)險被網(wǎng)站記錄。而怎么才能避免我們的真實(shí)ip被網(wǎng)站記錄呢,那就需要使用代理ip來給我們套上一層偽裝,來讓目標(biāo)網(wǎng)站檢測不到我們的真實(shí)ip地址。除了這種情況,有的網(wǎng)站限制了一些地區(qū)的ip地址,如果不使用代理的話,我們就無法正常訪問目標(biāo)網(wǎng)站了,所以我們很多時候需要使用代理ip:
爬蟲代碼中使用代理ip
就像是請求時偽裝頭一樣,偽裝ip,注意是 { }
代理ip的獲取
?????像我們剛剛的proxies存儲的代理,是可以直接作為參數(shù)傳進(jìn)requests里面使用的。那現(xiàn)在我們就來做這個proxies。
?????首先打開一個代理IP提供商,我這里選擇的是站大爺,我們一般使用api獲取,也就是接口直接獲取我們需要的ip,由供應(yīng)商返回提供給我們的ip信息:
?可以根據(jù)自己需要的情況設(shè)置:
?????這里從URL點(diǎn)擊進(jìn)去使用生成的API接口鏈接來做演示,會生成一個url鏈接,我們requests直接去請求這個鏈接,就可以獲得這個代理IP的詳細(xì)信息。
# 拿到供應(yīng)商給我們的代理IP
URL = "https://www.zdaye.net/?utm-source=csdnhao&utm-keyword=%3Fcsdnhao"
# 這里參數(shù)控制了數(shù)量 格式 和ip協(xié)議等等 這也算是它的一個優(yōu)勢吧,多的話可以提取幾百,而且可以指定城市從固定地點(diǎn)提取ip,更符合爬蟲模擬人類的行為特征。
url = "http://api.proxy.zdaye.io/getProxyIp?num=1&return_type=txt&lb=1&sb=0&flow=1®ions=&protocol=http"
# 輸出ip
res = requests.get(url)
print(res.text)
# 這個ip就可以放在我們實(shí)際要請求的網(wǎng)頁requests中了
檢驗(yàn)代理ip是否生效
我們訪問一個網(wǎng)站,這個網(wǎng)站會返回我們的ip地址:
print(requests.get('http://httpbin.org/ip', proxies=proxies, timeout=3).text)
重點(diǎn)來了,我使用代理IP進(jìn)行訪問,如果返回來不是我們自己的IP,說明代理ip可用,可以偽裝,也可以幫我們帶回想要的信息。
我們看一下剛才我使用了四個不同的代理ip,結(jié)果是全部生效了,
未生效問題排查
如果你返回的還是本機(jī)地址,99%試一下兩種情況之一:
1.請求協(xié)議不匹配
簡單一點(diǎn)來說那就是,你請求的是http格式,那就要使用http的協(xié)議,是https格式,就要使用https的協(xié)議。
如果我請求是http ,但只有https,就會使用本機(jī)ip。
?????繼續(xù)重點(diǎn),我們獲取的代理是兩種都支持的,但是要自己像我這樣設(shè)置,就像去買了條魚準(zhǔn)備放生。卻又不把魚丟河里去,你不讓它去水里,它當(dāng)然游不起來,這屬于我們自己的問題。
2.代理失效文章來源:http://www.zghlxwxcb.cn/news/detail-754771.html
??當(dāng)我們使用的是免費(fèi)代理或者一些廉價的普匿代理,那失效就是必然的了。使用代理還是建議選擇一些優(yōu)質(zhì)的,名氣大一點(diǎn)的代理。文章來源地址http://www.zghlxwxcb.cn/news/detail-754771.html
到了這里,關(guān)于代理ip的使用方法——Python爬蟲的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!