python獲取代理ip與端口


 

在我們使用python爬蟲獲取所需資源時,如果被發現違規行為,有可能會被對方服務器禁止本地ip訪問,所以獲取代理ip與端口進行訪問可以預防部分危險,但是一個一個搜索查找代理ip與端口,程序效率太低,因此使用程序獲取代理ip與端口是一個好選擇。

 

 1 import urllib.request  2 import re  3 
 4 # 正則匹配規則
 5 regip = "<td>((?:(?:1[0-9][0-9]\.)|(?:2[0-4][0-9]\.)|(?:25[0-5]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.)){3}(?:(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5])|(?:[1-9][0-9])|(?:[0-9])))</td>"
 6 regport = "<td>(\d{2}|\d{3}|\d{4}|\d{5})</td>"
 7 
 8 # 偽裝瀏覽器頭信息
 9 header = ("User-Agent", 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0') 10 opener = urllib.request.build_opener() 11 opener.addheaders = [header] 12 urllib.request.install_opener(opener) 13 
14 
15 # 從https://www.xicidaili.com/wn網站獲取代理ip
16 def get_ip(m=0, i=1): 17     url = "https://www.xicidaili.com/wn/"+str(i) 18     data = urllib.request.urlopen(url).read().decode("utf-8", "ignore") 19     ListIp = re.compile(regip).findall(data) 20     return ListIp[m] 21 
22 
23 # 從https://www.xicidaili.com/wn網站獲取代理端口
24 def get_port(m=0, i=1): 25     url = "https://www.xicidaili.com/wn/"+str(i) 26     data = urllib.request.urlopen(url).read().decode("utf-8", "ignore") 27     ListPort = re.compile(regport).findall(data) 28     return ListPort[m]

 

值得一提的是,其中的m值為網站的頁碼數,i表示第幾條數據,使用時盡量使ip與port的i值相同。

由於https://www.xicidaili.com/wn/網頁的布局,所以i盡量不要超過100.當然,參數i和m也不能出現負數。

 

具體怎么導入,怎么使用,相信不需要我多說了,都是基礎中的基礎。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM