在列表中找到了代理,接下来怎么做?本教程介绍如何在最常用的工具中配置代理:浏览器、系统设置、curl 和 Python。所有示例都用 IP:端口 作为占位符,请从免费代理列表中复制实际值。
开始之前
- 选择几秒前刚检测过、延迟较低的代理。
- 注意协议:HTTP 代理和 SOCKS5 代理的配置方式不同。
- 准备两三个备用代理,免费代理随时可能下线。
Firefox
Firefox 有独立于系统的代理设置:
- 打开 设置 → 常规 → 网络设置 → 设置…
- 选择 手动配置代理。
- HTTP 代理:在 HTTP 代理 中填写 IP 和端口,并勾选 也将此代理用于 HTTPS。
- SOCKS 代理:填写 SOCKS 主机,选择 SOCKS v5(或 v4),并勾选 使用 SOCKS v5 时代理 DNS 查询。
- 点击 确定,打开任意“查看我的 IP”页面进行确认。
Chrome 和 Edge
基于 Chromium 的浏览器默认使用系统代理。若只想让浏览器使用代理,可带参数启动:
chrome --proxy-server="http://IP:端口"
chrome --proxy-server="socks5://IP:端口"
代理切换扩展可以一键完成同样的操作,经常更换代理时很方便。
Windows 和 macOS
- Windows: 设置 → 网络和 Internet → 代理 → 手动设置代理 → 填写地址和端口。
- macOS: 系统设置 → 网络 → 当前连接 → 详细信息 → 代理 → 启用 网页代理(HTTP)、安全网页代理(HTTPS) 或 SOCKS 代理。
系统设置会影响所有遵循它的程序,用完记得关闭代理。
curl
curl -x http://IP:端口 https://example.com
curl --socks5-hostname IP:端口 https://example.com
--socks5-hostname 让代理解析域名,避免 DNS 泄露。加上 --max-time 15 可防止卡在失效的代理上。
Python requests
import requests
proxy = "http://IP:端口" # 或 "socks5h://IP:端口"
r = requests.get(
"https://example.com",
proxies={"http": proxy, "https": proxy},
timeout=15,
)
print(r.status_code)
使用 SOCKS 需要额外安装:pip install "requests[socks]"。
Scrapy
通过 meta 为每个请求指定代理:
yield scrapy.Request(url, meta={"proxy": "http://IP:端口"})
轮换免费代理
免费代理最好以代理池的方式使用。通过我们的 API 下载最新列表,依次尝试,并丢弃失败的代理:
import random, requests
pool = requests.get(
"https://SITE/api/v1/proxies?protocol=http&anonymity=elite&format=txt"
).text.split()
for attempt in range(5):
proxy = "http://" + random.choice(pool)
try:
r = requests.get("https://example.com",
proxies={"http": proxy, "https": proxy}, timeout=10)
break
except requests.RequestException:
pool.remove(proxy.removeprefix("http://"))
将 SITE 替换为本站地址。每隔几分钟刷新一次代理池,列表本身每 30 秒更新一次。
常见问题排查
- 连接被拒绝或超时:代理已下线,换下一个。
- 407 Proxy Authentication Required:代理现在需要密码,跳过它。
- 到处都是验证码:换用高匿代理或其他国家的代理。
- 网站看到你的真实 IP:代理是透明的,或程序忽略了代理设置。
如果免费代理不够用,请阅读免费与付费代理的对比。