設置代理IP
設置代理IP
前言大綱
我們設計網路爬蟲時,可能某些網站造訪太頻繁,特別是爬取大量資料時,此時可以使用 time.sleep() 方式處理。
例如在設計交友網站的爬蟲程式時,想要擷取的有好幾百頁,共有幾萬筆未婚女性資料,其中每個頁面有20筆,在使用迴圈爬取每個頁面中,增加下列 time.sleep() 指令,這就是避開伺服器查覺相同頻率爬取資料。
time_sleep(random.randint(3,10))
但是相同 IP 進入網頁太頻繁仍是很有可能遭到網路封鎖,碰上這類情況,我們可以透過代理 IP 。使用此代理 IP 時,可以將我們自己的 IP 隱藏起來,使用代理IP。方法是在 requests.get() 內增加 proxies 參數,在這個參數內,可以使用字典格式的 IP ,細節可以參考下列程式範例 :
範例 pythonProxies-01.py : 使用代理 IP 範例,無法執行。
# pythonProxies-01.py
import requests
proxies = {
"http": "http://111.231.81.109:3128", # ip:port
"https": "https://111.231.81.109:1080", # ip:port
}
r = requests.get("https://docs.python.org", proxies=proxies)
print(response.url)
執行結果
<class 'requests.models.Response'>
https://www.httpbin.org/get
上述程式範例 pythonProxies-01.py 可能無法執行,必須要在程式第5,6行輸入正確可用的IP。市面上有許多網站有提供免費的代理IP可以使用,https://freeproxylists.net/zh/ :
繼續往下捲動可以看到更多IP地址與 Port 編號,當然如果使用頻繁建議可以設計爬蟲程式直接爬取上述表單的IP地址與Port編號。
以下是幾個免費的代理IP網站:
- https://freeproxylists.net/zh/
- http://www.xiladaili.com/
- https://www.kuaidaili.com/
- http://xicidaili.com/
範例 pythonProxies-02.py : 使用免費代理 IP 範例。
# pythonProxies-02.py
import requests
proxies = {
"http": "http://203.83.182.86:8080", # ip:port
}
r = requests.get("https://docs.python.org", proxies=proxies)
if r.status_code == 200:
print('代理IP使用成功')
執行結果
代理IP使用成功
參考資料
特色、摘要,Feature、Summary:
關鍵字、標籤,Keyword、Tag:
- Web-Crawler,Data-Mining,Data-Science,

留言
張貼留言
Aron阿龍,謝謝您的留言互動!