ProxyHealthList

首页 / 用例 / 网页爬虫

免费网页爬虫代理

用单个 IP 抓取网站很快就会被限流或封禁。轮换一个新鲜、经过验证的代理列表能把请求分散到多个 IP 上——下面用一个免费、每小时检测的列表演示怎么做,无需注册。

下载列表(JSON) 快速代理(TXT)

为什么要轮换代理

大多数站点会对请求过多的 IP 限速或封禁。代理池让每个请求(或每一批)从不同地址发出,任何单个 IP 都不会触发限流。免费代理的难点在于任意一条都可能几分钟内失效——所以可靠的模式是在多个已验证代理之间轮换 + 重试,而不是依赖某一条。

用 Python 轮换验证过的列表

下面的例子加载 JSON 列表(已按速度从快到慢排序),逐一轮换,任一代理失败就重试下一条。

import requests

LIST = "https://raw.githubusercontent.com/xyzs996/free-proxy-health-list/main/proxies/all/data.json"

# 1. 加载验证过的列表(最快、质量最高的在前)
pool = requests.get(LIST, timeout=15).json()

def scheme(p):
    proto = p["protocol"]; host = p["proxy"]
    return f"socks5h://{host}" if proto.startswith("socks5") else \
           f"socks4://{host}" if proto.startswith("socks4") else f"http://{host}"

def fetch(url):
    for p in pool:                       # 2. 在代理池中轮换
        px = scheme(p)
        try:
            r = requests.get(url, proxies={"http": px, "https": px}, timeout=8)
            if r.ok:
                return r.text
        except requests.RequestException:
            continue                     # 3. 失效代理?换下一条
    raise RuntimeError("所有代理都失败了 —— 刷新列表")

print(fetch("https://httpbin.org/ip")[:200])

做个有礼貌的爬虫

  1. 在请求之间加带抖动的延迟(如 1–5 秒),别猛打目标站。
  2. 设置一个真实的 User-Agent 请求头。
  3. 遵守目标站的 robots.txt 和服务条款。
  4. 遇到 429 Too Many Requests 时退避(睡更久)。
  5. 定期刷新代理列表 —— 它每小时重新验证。

只抓取你有权抓取的数据。不要用代理绕过访问控制、代人登录或违反网站条款。见合规使用说明

常见问题

免费代理够做网页爬虫吗?

很适合中小规模抓取公开页面、测试和原型。单个代理很快失效,所以要在多个之间轮换重试。大规模或业务关键的抓取,轮换端点更可靠。

怎么避免爬虫被封 IP?

按请求轮换、加延迟与抖动、用真实 User-Agent、遵守 robots.txt、遇 429 退避。轮换新鲜的验证列表能把负载分散到许多 IP。

爬虫用 HTTP 还是 SOCKS5?

都行。HTTP 最简单、无需额外包;SOCKS5(用 socks5h://)让 DNS 通过代理解析,一些爬虫更偏好这种。

想要轮换端点而不是文件?

规划中的 Pro API 提供轮换端点及按延迟和质量筛选,免去自己管理代理池。

相关