[Python][爬蟲]防止被ban,代理IP怎麼用?
如何讓爬蟲程式不被ban?
- 動態設置user agent
- 使用代理IP
參考
這裡主要介紹如何使用IP代理。
proxy代理類型
-
透明代理(Transparent Proxy)
REMOTE_ADDR = Proxy IP
HTTP_VIA = Proxy IP
HTTP_X_FORWARDED_FOR = Your IP -
匿名代理(Anonymous Proxy)
REMOTE_ADDR = proxy IP
HTTP_VIA = proxy IP
HTTP_X_FORWARDED_FOR = proxy IP -
混淆代理(Distorting Proxies)
REMOTE_ADDR = Proxy IP
HTTP_VIA = Proxy IP
HTTP_X_FORWARDED_FOR = Random IP address -
高匿代理(Elite proxy或High Anonymity Proxy)
REMOTE_ADDR = Proxy IP
HTTP_VIA = not determined
HTTP_X_FORWARDED_FOR = not determined
代理proxy哪裡找?
這裡提供兩個我覺得品質比較好的proxy代理
- http://www.goubanjia.com/free/index.shtml
- http://www.proxyserverlist24.top/
如何確定真的使用代理IP了?
import requests
# 隨便google可以找到可以查詢自己IP的網站
url = "http://icanhazip.com/" # 這個網站可以知道目前瀏覽的IP
proxies = {
"http":"http://xx.xx.xxx:xxxx",
"https":"https://xx.xx.xxx:xxxx",
}
###注意
#要爬取的網站是使用什麼協定?http?https?
#網址可能會有轉址的情況,最後轉的那個網址才是真正的協定喔
res = requests.get(url, proxies = proxies)
print res.text # 如果這個網站print出來的和proxies一樣,那就表示成功了
抓完proxy後,我將所有proxy儲存在csv檔案中, 要爬取網站的時候,先讀取該檔案, 只要被擋,就random使用proxy替換proxies。
如果所有proxy都用完再重新爬取, 網站上的proxy都會不停更換, 所以只要更新proxy庫就好。