For the complete documentation index, see llms.txt. This page is also available as Markdown.

Scrapy

Scrapy 通过内建的 HTTP_PROXY 环境变量与 HttpProxyMiddleware 接入 helodata。需要按请求轮换时再加 scrapy-rotating-proxies

单一静态代理

settings.py

HTTPPROXY_AUTH_ENCODING = "latin-1"

DOWNLOADER_MIDDLEWARES = {
    "scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware": 750,
}

每个请求中:

def start_requests(self):
    proxy = "http://helo_s1a2b3c4d5e-type-res-region-us:PASSWORD@gate.helodata.io:7777"
    for url in self.start_urls:
        yield scrapy.Request(url, meta={"proxy": proxy})

或启动前设环境变量:

export HTTP_PROXY="http://helo_s1a2b3c4d5e-type-res-region-us:PASSWORD@gate.helodata.io:7777"
export HTTPS_PROXY="$HTTP_PROXY"
scrapy crawl myspider

scrapy-rotating-proxies 做 ISP 轮换

settings.py

中间件会按代理记录失败并跳过被 ban 的;配合 RETRY_HTTP_CODES = [429, 502, 522, 524] 处理瞬时网关错误。

住宅会话动态轮换

无需外部清单,按需生成会话:

添加 helodata 标签

标签会出现在流量统计中——见 使用统计

验证

常见陷阱

  • HttpProxyMiddleware 被关闭 — Scrapy 默认启用,自定义 DOWNLOADER_MIDDLEWARES 时记得保留它。

  • 小 ISP 批次配高 CONCURRENT_REQUESTS — 批次只有 N 个 IP,超 N 的并发只是排队。CONCURRENT_REQUESTS_PER_DOMAIN 与池大小匹配。

最后更新于

这有帮助吗?