Python 请求、Scrapy 与网页解析工具如何接入代理?
覆盖 Requests、HTTPX、aiohttp、urllib3、curl_cffi 与网页解析库的配置来源、认证及出口验证。
只只HTTP技术团队维护更新于 2026年10月7日
Python 工具接入时,先区分负责网络请求的库和只负责解析页面的库。只只HTTP动态与静态的差别是连接字段来源,请求库的配置方式可以共用。
步骤一:获取只只HTTP代理信息
- 动态住宅:进入“动态住宅网络 → 账密认证”,取得
us.zzhttp.com、端口7878、生成的完整代理用户名和对应子账号密码;协议按工具选择 HTTP 或 SOCKS5 TCP。先确认实名、权益、共享流量和子账号状态。 - 静态住宅:进入“静态住宅网络 → IP 管理”,复制已交付、可用且未到期实例的实际 IP、端口与独立代理账密。静态购买无需实名认证,不使用动态网关、子账号或客户白名单。
详细获取步骤见账密认证和静态住宅首次连接。代理密码不是控制台登录密码。
步骤二:选择工具入口
| 工具 | 配置入口 | 使用要点 |
|---|---|---|
| Requests | 请求或 Session 的 proxies | HTTP 和 HTTPS 目标都可使用 HTTP 代理 URL,见现有 Python 示例 |
| HTTPX | Client 的 proxy | 按安装版本核对参数,见HTTPX 示例 |
| aiohttp | 请求的 proxy 与 proxy_auth | 端点与 BasicAuth 分开,见aiohttp 示例 |
| urllib3 | ProxyManager 与 proxy_headers | 使用代理认证头,不将认证头发给目标网站 |
| curl_cffi | Session 或请求的代理选项 | 依该库当前版本配置 HTTP 代理和认证,不因指纹选项存在就假定代理已启用 |
| Scrapy | 请求 meta['proxy'],配合代理中间件 | 认证由相应中间件处理;逐请求核对,不把全局变量当作已生效配置 |
| Beautiful Soup、PyQuery、lxml | 先用已配置代理的请求库取得正文,再交给解析器 | 解析器不会自动继承其他进程代理;若调用自带联网功能,另外检查其网络入口 |
代理 URL 如需嵌入用户名密码,分别进行 URL 编码后组合。不要直接拼接包含 @、: 等特殊字符的密码;库提供独立认证字段时优先使用。不要把 HTTP 代理 URL 改成 HTTPS 代理 URL 来表示目标网站是 HTTPS。
步骤三:保存并运行最小请求
- 从环境变量或私有运行配置读取主机、端口、用户名、密码,填入选定库的对应参数。
- 设置合理超时,先用单个请求验证,避免把大批采集任务作为首次检测。
- 检查该库是否读取系统代理变量、绕过列表或使用其他 Session,保证实际请求采用本次配置。
- 拿到响应后再传给解析器,检查状态码与内容类型,不将错误页解析成正常数据。
步骤四:验证与排查
用同一 Client / Session / Scrapy 请求访问 https://ipinfo.io/json,核对出口和地区,再访问允许测试的目标。解析结果本身不能证明代理生效。
- 407:动态核对完整生成用户名、子账号和权益;静态核对实例独立凭据与有效期。
- 参数错误:检查库版本,HTTPX 等库的接口变化不能用其他库参数套用。
- TLS 失败:检查证书信任与目标站点,不通过关闭证书校验掩盖问题。
- 解析为空:先查看 HTTP 状态和响应正文,再检查选择器,代理连接成功不保证页面结构不变。
- 出口反复变化:动态任务需要稳定会话时见粘性会话;静态不加动态 session 参数。
当前库参数可查Requests 代理文档、HTTPX 代理文档、aiohttp 代理支持、urllib3 代理说明、Scrapy 代理中间件和curl_cffi 代理示例。
这篇内容解决了你的问题吗?
反馈只用于改进公开文档,不会提交账号或请求信息。