python3(requests)使用代理ip
阿新 • • 發佈:2018-11-12
- 當需要採集大量資料時,或者有的網站對訪問速度特別嚴格的時候,有的網站就採取封ip,這樣就需要使用代理ip。就像馬蜂窩一樣,,自從被曝資料造假之後,就不好爬了,python使用代理ip的小demo為:
import requests
from bs4 import BeautifulSoup
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}
proxies = {'http' : '120.236.128.201:8060',
'https': '120.236.128.201:8060'
}
url="http://www.overlove.xin/html/"
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}
req=requests.get(url,headers=header,proxies=proxies,timeout=5)
html=req. text
soup=BeautifulSoup(html,'lxml')
print(soup.text)
輸出為:
找一個可以定位的網站測試
網站是我以前寫的一個天氣預報介面(已經暴斃)。之前有寫過用java如何寫天氣介面通過ip檢視天氣資訊
如果通過購買的代理ip,就需要先解析格式,提取ip和埠構造ip池,進行隨機選用。原諒我窮逼買不起ip。。嗚嗚。
- 另外,使用代理ip的時候一定要用好try catch,如果對資訊完整性要求比較高。還需要對失敗後從寫方法,因為代理ip如果時免費的並不穩定,也有點慢。還有,有的ip不能用他會瞎跳到其他的連結上,比如跳到有道上,所以,使用代理ip時候一定要處理好異常,防止程式異常終止。