可在Telegram上免费试用:法国 、英国 或新加坡 加入Telegram
Python 设置指南

移动代理 Python 配置

移动代理 Python 设置分步教程。配置 requests、httpx、aiohttp 和 Selenium,利用真实的 4G/5G 运营商 IP 实现高可靠性的自动化和网页抓取。

PXM2 Proxies September 22, 2026 阅读时间 8 分钟
Python 3.9+ 运行时版本
requests & httpx 涵盖的图书馆
Selenium 浏览器自动化
7+ 可用国家数
  • 请求会话池 — 维护粘性会话,并在数百个 HTTP 请求中复用 TCP 连接。
  • 高并发 httpx 与 aiohttp — 配置支持完整 HTTP/2 和 SOCKS5 代理的异步客户端传输协议。
  • 无头 Selenium 集成 — 无缝注入代理参数并处理浏览器身份验证扩展。
  • 弹性重试管道 — 自动检测 IP 轮换的冷却时间,并对短暂的运营商断网进行重试。
4G/5G移动代理 Python Web 自动化
支持的框架requests, httpx, aiohttp, Selenium
传输协议HTTP, HTTPS, SOCKS5 (socks5h)
会话管理连接池与保持活动状态
IP轮换处理urllib3 的重试与 API 触发器
支持异步与同步

连接池

自动重试

Python 代理库

Python 是网络爬虫、自动化和数据管道工程的主要编程语言。不过,不同的 Python 库会在网络协议栈的不同层与代理进行交互。选择合适的库取决于您的项目是需要简单的同步 HTTP 调用、高并发异步工作流,还是完整的浏览器模拟。

图书馆 范式 SOCKS5 支持 最适合
requests 同步 通过 requests[socks] 脚本、线性爬虫、API 客户端
httpx 同步与异步(HTTP/2) 通过 socksio 访问 高吞吐量爬虫、FastAPI 后端
aiohttp 异步 I/O 通过 aiohttp-socks 大规模并发网页抓取工具
Selenium 浏览器 WebDriver 原住民旗帜 单页应用、Cloudflare Turnstile、登录流程

请求库配置

在 Python 的 requests 模块中,代理配置是通过一个字典来实现的,该字典将协议方案映射到代理端点 URL。为避免每次调用时的开销和 TCP 重新协商,请始终使用 requests.Session() 对象。会话会复用底层的连接池,并在不同调用之间保留 Cookie。

使用 PXM2 移动代理配置 requests.Session()
import requests

# 1. Define proxy credentials and endpoint
PROXIES = {
    'http': 'http://user123:secret456@proxy.pxm2.io:8000',
    'https': 'http://user123:secret456@proxy.pxm2.io:8000',
}

# 2. Initialize Session and mount proxies
session = requests.Session()
session.proxies.update(PROXIES)

# 3. Add realistic mobile browser headers
session.headers.update({
    'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15',
    'Accept-Language': 'en-US,en;q=0.9',
})

# 4. Make requests through the dedicated mobile IP
response = session.get('https://ipinfo.io/json', timeout=15)
print(response.json())
请注意,https 协议映射到 http://proxy,这将建立一个加密的 CONNECT 隧道

To route requests through SOCKS5 with remote DNS resolution, install the SOCKS dependencies: pip install "requests[socks]". Then replace the proxy URLs with socks5h://user:pass@proxy.pxm2.io:1080.

httpx 和 aiohttp 的配置

当将爬虫扩展到每分钟处理数百个请求时,同步代码会在等待网络响应期间阻塞 Python 解释器。httpx 和 aiohttp 允许在单个异步事件循环上并发处理请求。

在异步移动代理中使用 httpx

httpx 直接在 AsyncClient 上提供了现代的异步支持和简洁的代理配置:

使用 httpx 进行异步请求
import asyncio
import httpx

async def fetch_ip():
    proxy_url = "http://user123:secret456@proxy.pxm2.io:8000"
    
    # Configure AsyncClient with custom timeouts and proxy
    limits = httpx.Limits(max_keepalive_connections=20, max_connections=50)
    async with httpx.AsyncClient(proxy=proxy_url, limits=limits, timeout=20.0) as client:
        response = await client.get("https://api.ipify.org?format=json")
        data = response.json()
        print(f"Carrier IP: {data['ip']}")

asyncio.run(fetch_ip())
httpx.AsyncClient 负责处理连接限制和异步连接池管理

Selenium 代理设置

对于受高级机器人管理或大量 JavaScript 保护的动态网站,Selenium 会驱动真正的 Chrome 或 Chromium 浏览器。但是,Chrome 的命令行参数 --proxy-server 不支持嵌入式凭据(例如 user:pass@host)。 如果通过该标志传递凭据,Chrome 会通过图形界面弹窗提示进行身份验证,从而导致无头脚本卡死。

Selenium 身份验证有两种生产环境解决方案:在 PXM2 上将您的服务器加入 IP 白名单,或者注入一个轻量级的后台 Chrome 扩展程序。

Selenium ChromeOptions 配置中的 IP 白名单设置
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
# Point to your dedicated PXM2 mobile modem (secured by IP whitelist)
options.add_argument('--proxy-server=http://proxy.pxm2.io:8000')
options.add_argument('--headless=new')
options.add_argument('--disable-blink-features=AutomationControlled')

driver = webdriver.Chrome(options=options)
driver.get('https://ipinfo.io')
print(driver.title)
driver.quit()
IP 白名单功能完全避免了 Chrome 身份验证扩展程序中的重复代码

Python 代理的最佳实践

为确保通过移动蜂窝网络进行数据抓取或账户管理时的稳定性,请遵循以下关键工程规则:

  • 1. 使用 urllib3 重试实现指数退避
    在无线切换过程中,蜂窝网络偶尔会出现数据包丢失的情况。通过配置一个针对 429、502、503 和 504 错误启用重试功能的 HTTPAdapter,可以防止爬虫程序崩溃。
  • 2. 设置显式超时
    在 Python 中切勿发出未指定超时参数的请求。如果基站延迟突然激增,未指定超时的请求将会无限期挂起。请务必提供一个元组:timeout=(5.0, 25.0),用于设置连接和读取超时。
  • 3. 同步 IP 轮换
    在 Python 中调用 PXM2 轮换 webhook 时,请将正在运行的工作线程暂停 5 到 8 秒。这样可以给调制解调器留出时间,使其从 4G/5G 基站断开连接、重新协商新的载波 IP,并重新建立数据服务。
🇫🇷

法国

3 名操作员 20-100 Mbps
从……开始
$4.34 1小时时长
4G
可用运算符:
Orange Bouygues SFR
🇸🇬

新加坡

2 名操作员 30-70 Mbps
从……开始
$2.99 1小时时长
4G
可用运算符:
Vivifi Singtel
🇮🇳

印度

2 名操作员 20-30 Mbps
从……开始
$2.74 1小时时长
4G
可用运算符:
Airtel Vodafone Idea (Vi)
查看所有地点 →

常见问题解答

如何在 Python requests 中配置移动代理?

定义一个代理字典,将 HTTP 和 HTTPS 协议映射到您的代理 URL,然后将其传递给 requests.get(),或将其挂载到 requests.Session() 实例上。使用 Session 可以复用底层的 TCP 连接,并在不同调用之间保留 Cookie。

Python requests 是否支持 SOCKS5 移动代理?

是的,如果通过 pip install requests[socks] 安装了 SOCKS 支持,您就可以指定 socks5h:// URL 方案,以确保主机名的 DNS 解析在代理调制解调器上进行,而不是在您的本地机器上。

如何在 Selenium 中处理代理身份验证,同时避免弹出警告窗口?

Chrome 本身并不原生支持 --proxy-server 选项中的内联用户名和密码标志。标准的解决方案是使用一个后台 Chrome 扩展程序来处理 chrome.webRequest.onAuthRequired 事件,或者在 PXM2 调制解调器上使用 IP 白名单。

在 Python 爬虫过程中,处理 IP 轮换的最佳方法是什么?

使用安装在会话上的 urllib3 重试适配器,并将其配置为在遇到 HTTP 429 和 503 状态码时进行重试。在按需轮换时,向 PXM2 轮换端点发送一个 HTTP 请求,暂停 5 到 10 秒,然后使用新的承载 IP 继续抓取。

在移动代理自动化方面,httpx 与 requests 相比如何?

httpx 通过 httpx.AsyncClient 开箱即用地提供了现代的 async/await 语法,并原生支持 HTTP/2 以及严格的连接超时设置。它非常适合高吞吐量的爬取任务,在这些任务中,异步事件循环可并发处理多个目标。

请查看其他编程语言、开发环境以及核心网络架构的相关教程。

开发人员与自动化指南

平台与数据抓取指南

借助专用移动 IP,为您的 Python 管道注入强劲动力

将 Python 的 requests、httpx 和 Selenium 直接连接到真实的 4G/5G 运营商硬件。支持无限轮询,且不限带宽。

获取移动代理