您好,登錄后才能下訂單哦!
python如何爬取免費代理并驗證代理是否可用,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
分享一個python腳本,使用代理ip來訪問網頁,方便抓取數據什么的~并自動驗證ip是否可以用
什么情況下會用到代理IP?比如你要抓取一個網站數據,該網站有100萬條內容,他們做了IP限制,每個IP每小時只能抓1000條,如果單個IP去抓因為受限,需要40天左右才能采集完,如果用了代理IP,不停的切換IP,就可以突破每小時1000條的頻率限制,從而提高效率。
腳本開始:
import requests from lxml import etree # 獲取快代理首頁的代理 def get_proxy_list(): url = "https://www.jxmtjt.com/" payload = {} headers = { "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36", 'Accept': 'application/json, text/javascript, */*; q=0.01', } response = requests.request("GET", url, headers=headers, data=payload) res = [] _ = etree.HTML(response.text) type_dct = { "HTTP": "http://", "HTTPS": "https://" } data_list = _.xpath("//tbody/tr") for data in data_list: ip = data.xpath("./td[1]/text()")[0] port = data.xpath("./td[2]/text()")[0] type = data.xpath("./td[4]/text()")[0] res.append(type_dct[type] + ip + ':' + port) return res # 測試代理 def check(proxy): href = 'http://www.baidu.com/' if 'https' in proxy: proxies = {'https': proxy} else: proxies = {'http': proxy} headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4396.0 Safari/537.36' } try: r = requests.get(href, proxies=proxies, timeout=5, headers=headers) if r.status_code == 200: return True except: return False if __name__ == '__main__': proxy_list = get_proxy_list() print(proxy_list) for p in proxy_list: print(p, check(p)) 大家代碼復制后,把獲取代理ip的網址改一改就可以用了,代碼我一直在用,大家也可以cnblogs,百度搜索一下有沒有免費的代理ip獲取網址~
關于python如何爬取免費代理并驗證代理是否可用問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。