首頁 > 軟體

python爬蟲之代理ip正確使用方法範例

2022-07-07 10:00:25

主要內容:代理ip使用原理,怎麼在自己的爬蟲裡設定代理ip,怎麼知道代理ip是否生效,沒生效的話哪裡出了問題,個人使用的代理ip(付費)。

代理ip原理

輸入網址後發生了什麼呢?

1.瀏覽器獲取域名

2.通過DNS協定獲取域名對應伺服器的ip地址

3.瀏覽器和對應的伺服器通過三次握手建立TCP連線

4.瀏覽器通過HTTP協定向伺服器傳送資料請求

5.伺服器將查詢結果返回給瀏覽器

6.四次揮手釋放TCP連線

7.瀏覽器渲染結果

其中涉及到了:

應用層:HTTP和DNS

傳輸層:TCP UDP

網路層:IP ICMP ARP

代理ip做了什麼呢?

簡單來說,就是:

原本你的存取

使用代理後你的存取

 為什麼要用代理呢?

因為我們在做爬蟲的過程中經常會遇到這樣的情況,最初爬蟲正常執行,正常抓取資料,一切看起來都是那麼美好,然而一杯茶的功夫可能就會出現錯誤,比如403 Forbidden,這時候開啟網頁一看,可能會看到“您的IP存取頻率太高”這樣的提示。出現這種現象的原因是網站採取了一些反爬蟲措施。比如,伺服器會檢測某個IP在單位時間內的請求次數,如果超過了這個閾值,就會直接拒絕服務,返回一些錯誤資訊,這種情況可以稱為封IP。而代理ip就避免了這個問題:

爬蟲程式碼中使用代理ip

就像是請求時偽裝頭一樣,偽裝ip,注意是 { }

proxies = {
           'https':'117.29.228.43:64257',
           'http':'117.29.228.43:64257'
       }
 
requests.get(url, headers=head, proxies=proxies, timeout=3) #proxies

檢驗代理ip是否生效

我們存取一個網站,這個網站會返回我們的ip地址:

print(requests.get('http://httpbin.org/ip', proxies=proxies, timeout=3).text)

我們看一下我使用了四個不同的代理ip,全部生效了,

 未生效問題排查

如果你返回的還是本機地址,99%試一下兩種情況之一:

1.請求協定不匹配

簡單來說就是,如果你請求的是http,就要用http的協定,如果是https,就要用https的協定。

如果我請求是http ,但只有https,就會使用本機ip。

2.代理失效

便宜沒好貨,好貨不便宜。如果確實大規模爬蟲是必須的話,還是買代理ip比較好,網上廣告滿天飛的某些代理實際價效比有些低了,自己常用的就不分享了,總是被當成廣告,推薦一些其他的比如:

1、IPIDEA

2、Stormproxies

3、YourPrivateProxy

4、GeoSurf

當然還有大家熟知的快代理,西刺等等,都有一些免費代理可供使用。

總結

到此這篇關於python爬蟲之代理ip正確使用方法的文章就介紹到這了,更多相關python爬蟲代理ip內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com