如何在Python Requests中使用代理(HTTP/HTTPS与Session连接池)

更新于:

Python的 requests 库通过一个 proxies 字典接收认证的 VinaProxy 代理,将 'http' 和 'https' 键均映射到 http://user:pass@ip:port 格式。将该字典绑定到长连接 requests.Session() 可以复用底层的TCP套接字,显著降低爬虫开销并提高抓取速度。

Python Requests · HTTP Proxy Format
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}
独享IPv4(机房)
🇺🇸 United States
有货
低至
₫20,000 / IP / 月
≈ US$0.74 · 以VND结算
批量阶梯价格
  • 1 个IP₫40,000
  • 5+ 个IP₫35,000
  • 10+ 个IP₫25,000
  • 20+ 个IP₫25,000
  • 50+ 个IP₫25,000
  • 100+ 个IP₫25,000
  • 200+ 个IP₫25,000
  • 500+ 个IP₫25,000
  • 1000+ 个IP₫22,000
  • 2000+ 个IP₫20,000
购买United States代理
独享IPv4(机房)
🇻🇳 Vietnam
有货
低至
₫20,000 / IP / 月
≈ US$0.74 · 以VND结算
批量阶梯价格
  • 1 个IP₫40,000
  • 5+ 个IP₫35,000
  • 10+ 个IP₫25,000
  • 20+ 个IP₫25,000
  • 50+ 个IP₫25,000
  • 100+ 个IP₫25,000
  • 200+ 个IP₫25,000
  • 500+ 个IP₫25,000
  • 1000+ 个IP₫22,000
  • 2000+ 个IP₫20,000
购买Vietnam代理

配置proxies字典格式与复用Session长连接

针对每个URL单独调用 requests.get() 会在每次请求时重新发起TCP三次握手与TLS证书协商。将代理绑定到 session = requests.Session() 能在多次连续请求间保持代理TCP隧道处于活跃状态。

Requests参数推荐代码语法技术作用说明
'http' 键'http://user:pass@ip:port'通过代理转发普通HTTP请求
'https' 键'http://user:pass@ip:port'使用 http:// 协议头以便底层 urllib3 发送HTTP CONNECT指令建立TLS隧道
timeout 元组timeout=(5, 15)5秒连接超时与15秒读取超时,防止工作线程死锁卡住
IP池轮换itertools.cycle(proxy_list)在你的独享静态IP池中均匀平摊轮询请求

避免常见的urllib3与ProxyError报错陷阱

  • 对于 'http' 和 'https' 字典键,代理URL前缀请统一使用 http://(而非 https://),除非代理端口明确要求TLS-over-TLS双层加密
  • 如果密码中含有 @、: 等特殊符号,请务必使用 urllib.parse.quote(password, safe='') 进行URL转义
  • 出现 407 Proxy Authentication Required 错误通常意味着URL字符串中的用户名或密码与控制台凭据不一致
  • 该配置逻辑完全适用于 httpx.Client(proxy='http://user:pass@ip:port') 以及 aiohttp 的 session.get(url, proxy=...)

操作步骤

  1. 1

    将ip:port:user:pass转换为URL格式

    使用我们的代理格式转换工具将 VinaProxy 代理列表快速转换为 http://user:pass@ip:port 字符串。

  2. 2

    定义proxies字典

    在Python脚本中声明 proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}。

  3. 3

    绑定至requests.Session()实例

    初始化 s = requests.Session() 并执行 s.proxies.update(proxies) 以启用持久 Keep-Alive 连接池。

  4. 4

    发起测试请求验证出口IP

    运行 print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json()),确认返回的JSON包含代理IP。

常见问题

为什么'https'键的代理URL依然使用'http://user:pass@ip:port'?

http:// 前缀用于告知 urllib3 连接代理服务器自身的通信协议(通过标准HTTP CONNECT建立隧道),而你到目标 https:// 网站的端到端流量全程保持TLS高强度加密。

在Python中如何让25个静态代理在抓取时均匀轮换?

将25个代理URL加载到 pool = itertools.cycle(PROXIES),在每次请求时传入 proxies={'http': p, 'https': p},并配合合理的单IP请求频率限制。

VinaProxy 会对Python爬虫脚本统计并限制流量吗?

不会。所有独享IPv4和静态住宅ISP套餐均提供无限月度流量,不按GB扣费。

搭建不限流量的Python爬虫代理池

覆盖全球7个核心国家的独享IPv4与静态住宅ISP代理,即买即用。

购买Python代理

相关文章

按平台选择代理
网络爬虫代理:面向 24/7 爬虫的不限流量独享 IPv4 与 ISP 代理池
为 Python、Playwright、Selenium 和 Scrapy 提供高速 HTTP(S) 独享 IPv4 与静态 ISP 代理,享无限月度流量。
代理配置教程
如何在 Playwright 中设置代理(浏览器级与 Per-Context 认证)
在 Node.js 和 Python 的 Playwright 中配置带认证的 HTTP(S) 代理。通过 BrowserContext 在单一浏览器实例中运行多个独立的静态 IP。
代理配置教程
如何在 Python Scrapy 中配置并轮换代理 IP
在 Python Scrapy 中使用 HttpProxyMiddleware、request.meta['proxy'] 与单 IP 并发节流配置带认证的 HTTP(S) 代理。
免费工具
批量代理格式转换工具(100% 浏览器本地安全处理)
100% 浏览器本地运行的批量代理格式转换工具。支持在 ip:port:user:pass、user:pass@ip:port、http:// URL、SOCKS5 URI、JSON 数组及 FoxyProxy 导入格式之间即时转换。
按平台选择代理
SEO 与 SERP 排名追踪代理:精准监测 7 国搜索结果排名
追踪精准本地化关键词排名,审查 Geo 重定向,并使用不限流量独享 IPv4 与静态 ISP 代理运行 Screaming Frog 全站抓取。
按平台选择代理
Amazon代理IP:隔离Seller Central、KDP与Merch账号,严防关联风险
杜绝Amazon Seller Central、KDP及Merch on Demand账号关联封禁。提供美国静态ISP与英国/日本独享IPv4私有代理。
IPV4 · united states
美国独享IPv4代理:专用于大数据采集、SEO追踪与广告验证的高速美国IP
美国独享IPv4代理:专用于数据爬取、排名跟踪、广告验证及亚马逊调研。静态独享IP,不限流量,快速开通。
IPV4 · vietnam
越南独享IPv4代理:高性价比、大批量自动化业务专属的静态越南IP
越南独享IPv4代理:高性价比IP,适用于Facebook养号互动、Shopee副店、自动化工具及google.com.vn监控。不限流量。