> For the complete documentation index, see [llms.txt](https://docs.ipwo.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ipwo.net/ji-cheng-jiao-cheng/gong-ju-yu-dai-li-ruan-jian/ru-he-wei-urllib3-she-zhi-ipwo-dai-li.md).

# 如何为 urllib3 设置 IPWO 代理

urllib3 是 Python 中广泛使用的 HTTP 客户端库，也是 Requests 等常用 HTTP 库的重要底层依赖。它支持连接池、HTTPS、重试机制以及 HTTP/HTTPS 代理，适用于接口调用、数据采集和自动化任务等场景。通过配置代理，urllib3 可以方便地集成 IPWO 动态住宅代理。

***

### 一、准备工作

开始配置前，请确保已完成以下准备：

* 已安装 Python 3
* 已安装 urllib3
* 已开通 IPWO 动态住宅代理
* 已创建 Zone
* 已获取代理用户名、密码和代理地址

如果尚未安装 urllib3，可执行：

```bash
pip install urllib3
```

***

### 二、配置 IPWO 代理

urllib3 可以通过 `ProxyManager` [配置 HTTP 代理](/huo-qu-yu-pei-zhi-dai-li/ru-he-huo-qu-dai-li.md)。

示例代码：

```python
import urllib3

proxy = "http://username_custom_zone_us:password@us.ipwo.net:7878"

http = urllib3.ProxyManager(proxy)

response = http.request(
    "GET",
    "https://ipinfo.io/json"
)

print(response.data.decode("utf-8"))
```

请根据自己的账户信息替换以下内容：

| 参数                         | 说明      |
| -------------------------- | ------- |
| username\_custom\_zone\_us | 代理用户名   |
| password                   | 代理密码    |
| us.ipwo.net                | 代理服务器地址 |
| 7878                       | 代理端口    |

***

### 三、测试代理是否生效

建议首次配置完成后，访问 IP 检测接口验证代理是否生效。

示例：

```python
import json
import urllib3

proxy = "http://username_custom_zone_us:password@us.ipwo.net:7878"

http = urllib3.ProxyManager(proxy)

response = http.request(
    "GET",
    "https://ipinfo.io/json"
)

result = json.loads(response.data.decode("utf-8"))

print(result)
```

正常情况下会返回类似结果：

```json
{
  "ip": "203.0.113.10",
  "country": "US"
}
```

如果返回的公网 IP 已发生变化，并且国家地区符合配置，则说明代理已经配置成功。

***

### 四、设置超时时间

建议为请求设置合理的超时时间，提高程序稳定性。

示例：

```python
import urllib3

proxy = "http://username_custom_zone_us:password@us.ipwo.net:7878"

http = urllib3.ProxyManager(
    proxy,
    timeout=urllib3.Timeout(connect=10, read=30)
)

response = http.request(
    "GET",
    "https://ipinfo.io/json"
)

print(response.status)
```

***

### 五、固定 Session（可选）

如果业务需要保持同一个出口 IP，可以在用户名中增加 Session 参数。

例如：

```
username_custom_zone_us_session_123456
```

使用相同的 Session 发起请求时，会尽可能保持同一个住宅 IP，适用于账号登录、长期会话、连续采集等业务场景。

更多内容可参考《[Session 使用说明](/kai-fa-zhe-wen-dang/api-shi-yong-zhi-nan/session-shi-yong-shuo-ming.md)》。

***

### 六、使用建议

为了获得更稳定的请求效果，建议：

* 为请求设置合理的超时时间
* 登录类业务建议使用固定 Session
* 根据目标业务选择对应国家地区
* 控制请求频率，避免短时间大量请求
* 使用连接池复用连接，提高请求效率
* 配置 Retry 重试机制，提高请求成功率

***

### 七、常见问题

#### [返回 407](/gu-zhang-pai-chu/dai-li-407-cuo-wu.md) Proxy Authentication Required

请检查：

* 用户名是否正确
* 密码是否正确
* Zone 是否配置正确

***

#### [请求超时（Timeout）](/gu-zhang-pai-chu/chao-shi-timeout.md)

请检查：

* 当前网络是否能够访问代理节点
* timeout 设置是否过低
* 网络连接是否稳定

***

#### 返回的 IP 未变化

请确认：

* 是否使用 `ProxyManager` 创建代理连接
* 用户名、密码是否填写正确
* 请求是否真正通过代理发送

***

#### 国家地区不正确

请检查：

* Zone 是否配置正确
* 用户名中的国家参数是否正确
* 是否使用了对应国家的代理入口

***

### 八、相关文章

* [如何使用 cURL 配置 IPWO 代理](/ji-cheng-jiao-cheng/gong-ju-yu-dai-li-ruan-jian/ru-he-shi-yong-curl-pei-zhi-ipwo-dai-li.md)
* [如何为 Python Requests 设置 IPWO 代理](/ji-cheng-jiao-cheng/gong-ju-yu-dai-li-ruan-jian/ru-he-wei-python-requests-she-zhi-ipwo-dai-li.md)
* [如何为 HTTPX 设置 IPWO 代理](/ji-cheng-jiao-cheng/gong-ju-yu-dai-li-ruan-jian/ru-he-wei-httpx-she-zhi-ipwo-dai-li.md)
* [Session 使用说明](/kai-fa-zhe-wen-dang/api-shi-yong-zhi-nan/session-shi-yong-shuo-ming.md)
* [请求最佳实践](/kai-fa-zhe-wen-dang/api-shi-yong-zhi-nan/qing-qiu-zui-jia-shi-jian.md)
* [如何检测代理是否生效](/dai-li-jian-ce-yu-yin-si-an-quan/ru-he-jian-ce-dai-li-shi-fou-sheng-xiao.md)
