> 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-beautiful-soup-she-zhi-ipwo-dai-li.md).

# 如何为 Beautiful Soup 设置 IPWO 代理

Beautiful Soup 是 Python 中常用的 HTML/XML 解析库，广泛应用于网页数据提取、信息采集和内容分析。由于 Beautiful Soup 本身不负责发送网络请求，因此通常会配合 Requests 等 HTTP 库使用，并通过 Requests 配置 IPWO 动态住宅代理完成网页访问。

***

### 一、准备工作

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

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

如果尚未安装相关依赖，可执行：

```bash
pip install requests beautifulsoup4
```

***

### 二、配置 IPWO 代理

Beautiful Soup 通常与 Requests 配合使用，通过 Requests 的 `proxies` 参数配置代理。

示例代码：

```python
import requests
from bs4 import BeautifulSoup

proxies = {
    "http": "http://username_custom_zone_us:password@us.ipwo.net:7878",
    "https": "http://username_custom_zone_us:password@us.ipwo.net:7878"
}

response = requests.get(
    "https://example.com",
    proxies=proxies,
    timeout=15
)

soup = BeautifulSoup(response.text, "html.parser")

print(soup.title.text)
```

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

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

***

### 三、解析网页内容

Beautiful Soup 支持多种 HTML 元素解析方式。

例如获取页面标题：

```python
title = soup.title.text
print(title)
```

获取所有链接：

```python
for link in soup.find_all("a"):
    print(link.get("href"))
```

获取指定元素：

```python
articles = soup.find_all("div", class_="article")
```

可以根据实际业务需要提取网页中的标题、链接、图片、列表等内容。

***

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

建议先访问 IP 检测网站，确认请求已经通过 IPWO 代理发送。

示例：

```python
import requests

proxies = {
    "http": "http://username_custom_zone_us:password@us.ipwo.net:7878",
    "https": "http://username_custom_zone_us:password@us.ipwo.net:7878"
}

response = requests.get(
    "https://ipinfo.io/json",
    proxies=proxies
)

print(response.text)
```

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

***

### 五、固定 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 Proxy Authentication Required

请检查：

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

***

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

请检查：

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

***

#### 页面解析失败

请检查：

* 请求是否成功返回 HTML
* 目标网站是否进行了反爬限制
* 是否返回了验证码或错误页面

建议先输出：

```python
print(response.status_code)
print(response.text)
```

确认返回内容后再进行解析。

***

#### 返回的 IP 未变化

请确认：

* `proxies` 参数是否正确配置
* 用户名、密码是否填写正确
* 请求是否真正通过 Requests 发起

***

### 八、相关文章

* [如何为 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)
* [如何为 Scrapy 设置 IPWO 代理](/ji-cheng-jiao-cheng/gong-ju-yu-dai-li-ruan-jian/ru-he-wei-scrapy-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/guo-jia-di-qu-can-shu-shuo-ming.md)
* [请求最佳实践](/kai-fa-zhe-wen-dang/api-shi-yong-zhi-nan/qing-qiu-zui-jia-shi-jian.md)
* [API 调用与批量采集](/dai-li-ji-chu-zhi-shi/api-diao-yong-yu-pi-liang-cai-ji.md)
* [如何检测代理是否生效](/dai-li-jian-ce-yu-yin-si-an-quan/ru-he-jian-ce-dai-li-shi-fou-sheng-xiao.md)
