您好,登錄后才能下訂單哦!
本篇內容介紹了“python爬蟲怎么設置代理ip”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
python爬蟲設置每個代理ip的方法:
1.添加一段代碼,設置代理,每隔一段時間換一個代理。
urllib2 默認會使用環境變量 http_proxy 來設置 HTTP Proxy。假如一個網站它會檢測某一段時間某個 IP 的訪問次數,如果訪問次數過多,它會禁止你的訪問。所以你可以設置一些代理服務器來幫助你做工作,每隔一段時間換一個代理,網站君都不知道是誰在搗鬼了,這酸爽! 下面一段代碼說明了代理的設置用法。
import urllib2 enable_proxy = True proxy_handler = urllib2.ProxyHandler({"http" : 'http://some-proxy.com:8080'}) null_proxy_handler = urllib2.ProxyHandler({}) if enable_proxy: opener = urllib2.build_opener(proxy_handler) else: opener = urllib2.build_opener(null_proxy_handler) urllib2.install_opener(opener)
2.Timeout 設置,可以解決一些網站出現響應過慢而造成的影響問題。
之前已經說過urlopen 方法了,第三個參數就是 timeout 的設置,可以設置等待多久超時,為了解決一些網站實在響應過慢而造成的影響。 例如下面的代碼,如果第二個參數 data 為空那么要特別指定是 timeout 是多少,寫明形參,如果 data 已經傳入,則不必聲明。
import urllib2 response = urllib2.urlopen('http://www.baidu.com', timeout=10)
import urllib2 response = urllib2.urlopen('http://www.baidu.com',data, 10)
以上就是Python爬蟲中設置代理的方法。結尾的時候我們補充了timeout的用法,本意是希望可以讓大家需要網絡過慢問題能有好的解決出路。
不過,地址代理方面用的較為多,所以要著重學習。如果需要用的ip可以試試太陽http,爬蟲采集、營銷推廣、工作室等行業首選的IP產品,全國城市線路數量200+,API調用頻率不限制,不限并發,24小時不斷更新IP池。
知識點擴展:
代碼擴展:
from bs4 import BeautifulSoup import requests import random def get_ip_list(url, headers): web_data = requests.get(url, headers=headers) soup = BeautifulSoup(web_data.text, 'lxml') ips = soup.find_all('tr') ip_list = [] for i in range(1, len(ips)): ip_info = ips[i] tds = ip_info.find_all('td') ip_list.append(tds[1].text + ':' + tds[2].text) return ip_list def get_random_ip(ip_list): proxy_list = [] for ip in ip_list: proxy_list.append('http://' + ip) proxy_ip = random.choice(proxy_list) proxies = {'http': proxy_ip} return proxies if __name__ == '__main__': url = 'http://www.xicidaili.com/nn/' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.60 Safari/537.17' } ip_list = get_ip_list(url, headers=headers) proxies = get_random_ip(ip_list) print(proxies)
“python爬蟲怎么設置代理ip”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。