使用代理IP可避免爬虫IP被封,常见方法包括:requests库通过proxies参数设置;urllib模块配置ProxyHandler;Selenium在ChromeOptions中添加代理;建议轮换多个代理并检测有效性,配合请求频率控制与User-Agent切换提升效果。

在使用Python爬虫抓取网页数据时,频繁请求同一目标网站容易导致IP被封禁。为避免这一问题,可以通过设置代理IP来隐藏真实IP地址,降低被封风险。以下是几种常见的设置代理IP的方法。
requests 是Python中最常用的HTTP库,支持通过参数直接添加代理。
示例代码:import requests
proxies = {
'http': 'http://123.45.67.89:8080',
'https': 'https://123.45.67.89:8080'
}
url = 'http://httpbin.org/ip'
response = requests.get(url, proxies=proxies, timeout=10)
print(response.json())
注意:确保代理IP格式正确,协议类型(http/https)与请求匹配。
Python内置的 urllib 模块也可以配置代理,适合不依赖第三方库的场景。
立即学习“Python免费学习笔记(深入)”;
示例代码:import urllib.request
proxy_handler = urllib.request.ProxyHandler({
'http': 'http://123.45.67.89:8080',
'https': 'https://123.45.67.89:8080'
})
opener = urllib.request.build_opener(proxy_handler)
urllib.request.install_opener(opener)
response = urllib.request.urlopen('http://httpbin.org/ip')
print(response.read().decode())
对于需要渲染JavaScript的页面,可使用 Selenium 结合浏览器驱动设置代理。
示例代码(Chrome):from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--proxy-server=http://123.45.67.89:8080')
driver = webdriver.Chrome(options=options)
driver.get('http://httpbin.org/ip')
print(driver.page_source)
driver.quit()
注意:某些浏览器扩展或认证类代理可能需要更复杂的配置。
单一代理IP仍可能被识别和封禁,建议使用多个代理IP轮换请求。
实现思路:import requests
import random
proxy_list = [
'http://ip1:port',
'http://ip2:port',
'http://ip3:port'
]
url = 'http://httpbin.org/ip'
for _ in range(3):
proxy = random.choice(proxy_list)
try:
res = requests.get(url, proxies={'http': proxy, 'https': proxy}, timeout=5)
print(f"Success via {proxy}: {res.json()}")
except:
print(f"Failed via {proxy}")
基本上就这些。关键是选择稳定代理源,并合理控制请求频率,配合User-Agent切换效果更好。不复杂但容易忽略细节。
以上就是Python爬虫怎样设置代理IP_Python爬虫使用代理IP防止封禁的设置方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号