在進行爬取相關(guān)數(shù)據(jù)時,經(jīng)常需要使用代理IP來提高效率和避免被封IP的情況。而維護一份優(yōu)質(zhì)的IP代理池是至關(guān)重要的。Python可以使用一些第三方庫或第三方API來建立IP池。
以下是Python建立IP池的步驟:
import requests from bs4 import BeautifulSoup # 首先我們需要從網(wǎng)站上爬取代理IP url = "https://www.xicidaili.com/" r = requests.get(url) soup = BeautifulSoup(r.text, 'html.parser') ip_table = soup.find("table", id="ip_list").find_all("tr")[1:] # 然后我們可以通過檢查每個IP的有效性,篩選出可用的IP ip_pool = [] for ip_row in ip_table: ip_info = ip_row.find_all("td") ip_address = ip_info[1].text ip_port = ip_info[2].text proxy = { "http": "http://{}:{}".format(ip_address, ip_port), "https": "https://{}:{}".format(ip_address, ip_port) } try: response = requests.get("http://httpbin.org/ip", proxies=proxy, timeout=5) if response.status_code == 200: ip_pool.append(proxy) except: pass # 最后我們可以隨機選擇池中的一個IP進行使用 import random proxy = random.choice(ip_pool) print(proxy)
上述代碼中,我們首先爬取了西刺代理網(wǎng)站上的代理IP,并檢查了每個IP的有效性。最終,我們得到一個可用的IP池。最后我們在池中隨機選擇一個IP進行使用。