在 Scrapy 请求的 meta["proxy"] 写入控制台凭据(注意 URL 编码)。这与 requests 单次调用不同。不要把并发设置写成产品限流。不支持中国大陆。
先从控制台复制协议、主机、端口、认证,再写进 Scrapy 请求。常见做法是在 `request.meta["proxy"]` 里放完整代理 URL,由默认开启的 `HttpProxyMiddleware` 使用。这和一次 `requests.get(..., proxies=...)` 不同:爬虫会连续发出许多请求,出口节奏取决于你买的是动态还是静态,而不是 Scrapy 自己「自动变成静态」。单次 Python 调用见用 Python 接住宅代理。
ZTProxy 提供动态住宅(按 GB)与静态住宅(按 IP·月)。示例是假占位符,不要当成生产地址。仅限授权目标。不支持中国大陆使用。
开始前备齐什么
| 准备项 | 从哪里来 |
|---|---|
| 协议、主机、端口、认证 | 仅控制台返回值(不用本文假占位符) |
| Python 与 Scrapy | 本机环境 |
| 测通 URL | 你有权访问的页面 |
| 动态或静态订单 | 动态 vs 静态 |
占位符(非生产):主机 `proxy.example.invalid`,端口 `10000`,用户 `USER_EXAMPLE`,密码 `PASS_EXAMPLE_NOT_REAL`。字符串格式见代理格式,协议见HTTP / SOCKS5 配置。命令以文档快速开始为准。先用 curl 测通 确认同一组凭据可用,再开爬虫。
推荐写法:meta["proxy"]
用户名或密码含 `@`、`:` 时先做 URL 编码。不要编造用户名里的国家或会话字段。也不要默认再装一套「轮换中间件」——除非控制台或你自己的调度确实需要,且你清楚它与订单类型如何配合。
import os
from urllib.parse import quote
import scrapy
user = quote(os.environ.get("ZT_PROXY_USER", "USER_EXAMPLE"), safe="")
password = quote(os.environ.get("ZT_PROXY_PASS", "PASS_EXAMPLE_NOT_REAL"), safe="")
host = os.environ.get("ZT_PROXY_HOST", "proxy.example.invalid")
port = os.environ.get("ZT_PROXY_PORT", "10000")
PROXY = f"http://{user}:{password}@{host}:{port}"
class AuthorizedCheckSpider(scrapy.Spider):
name = "authorized_check"
def start_requests(self):
yield scrapy.Request(
"https://example.com",
meta={"proxy": PROXY},
callback=self.parse,
)
def parse(self, response):
self.logger.info("status=%s", response.status)
`CONCURRENT_REQUESTS`、`DOWNLOAD_DELAY` 只是客户端节奏,用来降低对目标站点的压力、也避免把失败重试变成额外流量。它们不是 ZTProxy 的产品限流或 SLA,流量如何计费见按 GB 还是按 IP。SOCKS5 仅在控制台返回 SOCKS、且你使用能处理 SOCKS 的下载处理器时才需要,且不要假设提供 UDP。
会话与常见问题
连续请求在动态产品上可以看到不同出口;这不自动等于故障。需要短时同一出口时看控制台的粘性字段,需要订购期内相对固定则用静态。见粘性 ≠ 静态。
| 现象 | 先检查什么 |
|---|---|
| 407 | 用户名密码、URL 编码、是否漏了 `meta["proxy"]`;订单是否有效 |
| 部分请求没走代理 | 是否只在第一条 Request 上设置了 proxy;后续 `follow` 是否丢掉 meta |
| 超时或流量异常偏高 | 重试是否在未成功时反复下载;先用 curl 核对凭据 |
| 地区不对 | 订单地区;不要自造用户名语法 |
更完整的症状表见407 与超时排查。
合规与范围
只采集你有权访问的公开或授权目标,并遵守站点规则。不要把本页写成绕过限制的教程。价格以控制台与价格方案为准(动态约 $0.40/GB,100 TB 整包约 $0.20/GB;静态共享约 $1.50、独享约 $5 /IP/月)。USDT/USDC 可用;Visa/Mastercard 申请中。不支持中国大陆使用。
FAQ
这和 requests 那一页有什么不同?
requests 页是单次 HTTP 调用。本页处理爬虫里每条 Request 如何带上代理,以及后续请求不要丢掉 meta。
HttpProxyMiddleware 还要自己开吗?
默认通常已启用。先确认没有被你的自定义中间件关掉或覆盖。
示例主机能直接用吗?
不能。必须改成控制台返回值。
把 CONCURRENT_REQUESTS 调高,是不是就等于更高套餐?
不是。那只是客户端并发。计费与套餐以控制台为准,见按 GB 还是按 IP。
必须安装第三方轮换插件吗?
不必。先用控制台订单类型(动态或静态)和下发的凭据。不要为了「看起来在轮换」再叠一层未核实的中间件。
可以用来突破登录墙吗?
不可以。仅限合法授权目标。
复用同一代理 URL 会保持同一 IP 吗?
不一定,尤其在动态产品上。连接或 URL 复用 ≠ 静态。
价格以哪里为准?
以控制台与价格方案为准。