TL;DR
- 要在 Scrapy 中使用代理,需要将完整的代理 URL 分配给
Request.meta["proxy"];Scrapy 的HttpProxyMiddleware会读取该请求级别的设置。 - 将 Nstdata 频道的用户名、密码、主机和端口保存在源控制之外,然后通过环境变量提供组装的代理 URL。
- 一个经过批准的回显端点足以在任何实际收集工作开始之前验证路由;不要对不允许访问的网站进行测试。
- Nstdata 代理提供文档化的 HTTP/HTTPS/SOCKS5 连接以及可配置的国家和会话参数,而 Scrapy 仍然负责爬虫的请求行为。
使用代理与 Scrapy 有什么意义?
在 Scrapy 中使用代理意味着通过代理端点发送特定请求,而不是直接通过机器的网络路径。Scrapy 使用 Request 对象携带请求特定的元数据,而内置的 HTTP 代理中间件使用 proxy 元值进行 HTTP 代理路由。
这不是一种权限机制。代理连接并不授予访问网站的权利、扩大速率限制、收集个人数据或忽略网站条款。仅在公共、拥有或其他授权的目标上使用 Scrapy 的代理。将爬取速率与目标保持成比例,仅收集声明目的所需的字段。
为什么在授权工作流程中使用 Scrapy 的代理?
当允许的任务需要一个文档化的网络位置、一个单独的测试路径或公共数据工作流程的受控连接时,可以在 Scrapy 中使用代理。示例包括验证您自己的本地化页面、在操作员允许的情况下收集公共记录,或测试批准的服务是否通过选定的国家端点按预期运行。
Scrapy 的设置系统允许项目全局定义下载器行为,而 Request.meta 值则提供了一个狭窄的请求级别选择。Scrapy 设置文档 从请求级别的方法开始,因为它易于审计。只有在您的团队需要一个跨多个爬虫的治理策略时,才添加自定义中间件。
在使用 Scrapy 的代理之前需要准备什么?
使用 Scrapy 的代理之前,您需要四样东西:目标的书面授权、Nstdata 代理频道、Scrapy 项目和批准的测试 URL。将频道凭证保存在您的环境或秘密存储中。不要将它们放在爬虫文件、笔记本输出、问题跟踪器或屏幕截图中。
Nstdata 的代理文档指定一个网关、端口、频道 ID、代理类型、国家参数、会话持续时间、会话 ID 和密码格式。它还列出了全球、美国、欧洲和亚洲的网关端点。在仪表板中为您自己的频道生成凭证,并使用当前仪表板值;不要将另一个帐户的格式复制为有效凭证。
| 前提条件 | 重要性 | 记录内容 |
|---|---|---|
| 目标授权 | 连接方式并不创造收集数据的权利 | 所有者、范围、允许的路径和最大请求速率 |





