在Python中,构建一个代理IP池可以帮助你在进行网络爬虫时避免被目标网站封禁。以下是一个简单的示例,展示了如何使用免费和付费的代理IP服务来构建一个代理IP池。
获取免费代理IP列表:
你可以从一些免费的代理IP提供商获取代理IP列表。例如,httpbin.org
提供了一个简单的API来获取代理IP。
编写代码获取代理IP:
以下是一个使用 requests
库从 httpbin.org
获取代理IP的示例:
import requests
def get_free_proxies():
url = "https://httpbin.org/ip"
response = requests.get(url)
if response.status_code == 200:
proxies = response.json()['origin']
return proxies
else:
return []
free_proxies = get_free_proxies()
print(free_proxies)
使用代理IP进行爬虫请求: 你可以在爬虫请求中使用这些代理IP:
import requests
def fetch_url(url, proxy):
proxies = {
'http': proxy,
'https': proxy
}
try:
response = requests.get(url, proxies=proxies, timeout=5)
response.raise_for_status()
return response.text
except requests.RequestException as e:
print(f"Error fetching {url}: {e}")
return None
proxy = free_proxies[0] # 使用第一个代理IP
url = "https://example.com"
content = fetch_url(url, proxy)
if content:
print(content)
选择付费代理IP服务:
你可以选择一些付费的代理IP服务,例如 ScraperAPI
、ProxyMesh
等。这些服务通常提供高可用性和更稳定的连接。
注册并获取API密钥: 注册并登录代理IP服务提供商的网站,获取你的API密钥。
编写代码使用代理IP:
以下是一个使用 ScraperAPI
的示例:
import requests
API_KEY = 'your_api_key'
URL = 'https://api.scraperapi.com/v1.0/proxy'
def get_proxy():
params = {
'api_key': API_KEY,
'http_method': 'GET'
}
response = requests.get(URL, params=params)
if response.status_code == 200:
proxy = response.json()['proxy']
return proxy
else:
return None
proxy = get_proxy()
if proxy:
print(f"Using proxy: {proxy}")
else:
print("Failed to get proxy")
url = "https://example.com"
response = requests.get(url, proxies={"http": proxy, "https": proxy})
if response.status_code == 200:
print(response.text)
else:
print(f"Error fetching {url}: {response.status_code}")
你可以将获取到的代理IP存储在一个列表或数据库中,并在爬虫请求中随机选择一个代理IP。这样可以提高爬虫的可用性和稳定性。
import random
proxies = get_free_proxies() # 或者从付费服务获取
proxy_pool = random.sample(proxies, min(len(proxies), 10)) # 选择10个代理IP
for proxy in proxy_pool:
url = "https://example.com"
content = fetch_url(url, proxy)
if content:
print(content)
通过这种方式,你可以构建一个可用的代理IP池,并在爬虫请求中使用这些代理IP来避免被目标网站封禁。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:python代理ip爬虫如何启用