为了避免在使用Python爬虫requests库时IP被封禁,你可以采取以下策略:
import random
from fake_useragent import UserAgent
ua = UserAgent()
headers = {'User-Agent': ua.random}
import requests
proxies = {
'http': 'http://代理IP:端口',
'https': 'https://代理IP:端口',
}
response = requests.get(url, headers=headers, proxies=proxies)
import time
for url in urls:
response = requests.get(url, headers=headers)
time.sleep(random.uniform(1, 3)) # 设置1到3秒之间的随机间隔时间
使用代理池:如果你有多个代理IP,可以将它们放入一个代理池中,然后随机选择一个代理IP发送请求。这样可以提高请求的隐蔽性。
遵守robots.txt协议:尊重目标网站的robots.txt文件,遵循其规定的爬虫规则。这可以降低被封禁的风险。
分布式爬虫:如果你的爬虫规模较大,可以考虑使用分布式爬虫。通过多台服务器或多个设备同时发送请求,可以降低单个IP地址的请求频率,从而降低被封禁的风险。
请注意,即使采取了这些策略,也不能保证完全避免IP被封禁。因此,在爬取网站时,请确保遵守相关法律法规和网站的使用条款。