在爬虫开发中,常遇到请求被限流、返回 403 或 IP 被封禁的情况。合理配置代理 IP 可解决大部分封禁问题。
何时必须使用代理
以下场景通常需要代理支持:
- 同一 IP 请求过于频繁
- 目标网站存在地区限制
- 脚本运行导致本机 IP 被封禁
- 批量爬取或多线程并发访问
代理的核心作用是:使用第三方 IP 进行访问。
requests 库基础配置
Python 爬虫常用 requests 库,本文仅介绍实用方法。
1. 基础代理格式
import requests
# 替换为实际代理 IP:端口
proxies = {
"http": "http://IP:端口",
"https": "http://IP:端口",
}
url = "https://httpbin.org/ip"
resp = requests.get(url, proxies=proxies, timeout=10)
print(resp.text) # 验证是否返回代理 IP
注意事项:
http和https协议均需配置,避免部分请求失效- 务必设置
timeout,防止代理阻塞导致脚本挂起
2. 带认证的代理配置
许多付费代理服务需要账号密码认证,格式如下:
proxies = {
"http": "http://用户名:密码@IP:端口",
"https": "http://用户名:密码@IP:端口",
}
直接拼接即可,无需额外安装依赖库。
代理有效性检测
无论免费或付费,代理均可能失效。直接使用易导致超时或报错。建议预先编写验证函数:
def check_proxy(proxy):
try:
resp = requests.get(
"https://httpbin.org/ip",
proxies={"http": proxy, "https": proxy},
timeout=8
)
return resp.status_code == 200
except:
return

