# 从 Bright Data Web Unlocker 迁移

了解从以下方案的关键差异和迁移过程： **Bright Data Web Unlocker** 到 [**Oxylabs 网页解锁器**](https://oxylabs.io/products/web-unblocker). 查看示例代码片段和功能对比，确保平稳迁移。

## 功能对比

[**Oxylabs 网页解锁器**](https://oxylabs.io/products/web-unblocker) 提供 Bright Data Web Unlocker 中的大多数功能，以及若干独特能力。下表突出显示了两项服务之间的主要差异：

| 功能             | Bright Data Web Unlocker           | Oxylabs 网页解锁器              |
| -------------- | ---------------------------------- | -------------------------- |
| Proxy Endpoint | brd.superproxy.io:33335            | unblock.oxylabs.io:60000   |
| API 端点         | <https://api.brightdata.com/wsapi> | 尚不支持（使用 网页爬虫API 实现 API 功能） |
| 代理轮换           | 自动                                 | 自动                         |
| 验证码绕过          | 支持                                 | 支持（基于AI）                   |
| 定价             | 高级域名单独定价                           | 单一价格                       |
| 地理位置定向         | 支持                                 | 支持                         |
| 移动端定向          | 支持                                 | 不支持                        |
| 自定义请求头/Cookie  | 支持                                 | 支持                         |
| JS 渲染          | 自动                                 | 手动（控制更多）                   |
| 渲染可能性          | HTML                               | HTML 和 PNG                 |
| 浏览器指令          | 不支持                                | 支持                         |
| POST 请求        | 不支持                                | 支持                         |
| 会话             | 不支持                                | 支持                         |
| 自定义状态码         | 不支持                                | 支持                         |

## 发起请求

### 基本请求格式差异

Bright Data 和 Oxylabs 请求之间的主要区别在于地理位置的处理方式。Bright Data 使用按区域划分的账户，而 Oxylabs 允许你通过在请求头中传递位置信息，立即使用来自所有位置的代理。

#### **Bright Data 示例**

```python
import pprint
import requests

username = 'brd-customer-<customer_id>-zone-<zone_name>-country-us'
password = '<zone_password>'
proxy_url = f'http://{username}:{password}@brd.superproxy.io:33335'

代理 = {
    'http': proxy_url,
    'https': proxy_url
}

headers = {}
url = "http://lumtest.com/myip.json"

response = requests.get(url, proxies=proxies, headers=headers)
pprint.pprint(response.json())
```

#### **Oxylabs 示例**

```python
import requests

# 在此使用你的网页解锁器凭据
USERNAME, PASSWORD = 'YOUR_USERNAME', 'YOUR_PASSWORD'

# 定义代理字典
代理 = {
  'http': f'http://{USERNAME}:{PASSWORD}@unblock.oxylabs.io:60000',
  'https': f'https://{USERNAME}:{PASSWORD}@unblock.oxylabs.io:60000',
}

headers = {
    'x-oxylabs-geo-location': '美国'
}

response = requests.request(
    'GET',
    'https://ip.oxylabs.io/headers',
    verify=False,  # 忽略 SSL 证书
    代理=代理,
    headers=headers
)

print(response.text)
```

## Oxylabs 网页解锁器的独特功能

### 持久会话

Oxylabs 网页解锁器的独特功能之一是会话功能，允许你通过同一个代理发送多个请求。通过在请求中添加自定义会话 ID 头，会话最长可使用 10 分钟：

```python
headers = {
    'X-Oxylabs-Session-Id': '123randomString'
}

response = requests.get(
    'https://ip.oxylabs.io/location',
    verify=False,  # 需要忽略证书
    代理=代理,
    headers=headers,
)
```

有关会话的更多信息，请查看 [**网页解锁器会话文档页面。**](/products/cn/web-unblocker/making-requests/session.md)

### POST 请求

与 Bright Data Web Unlocker 不同，Oxylabs 网页解锁器支持向 Web 端点发送 POST 请求：

```python
data = {
    'Your POST JSON': 'data'
}

response = requests.post(
    'https://ip.oxylabs.io/location',
    verify=False,  # 需要忽略证书
    代理=代理,
    json=data,
)
```

有关 POST 请求的更多详情，请参阅 [**网页解锁器 POST 请求文档。**](#post-requests) &#x20;

### JavaScript 渲染和浏览器指令

Oxylabs 网页解锁器提供自定义浏览器指令功能，并支持无头浏览器模式，可将结果页面的 JavaScript 渲染为 HTML 文档或 PNG 截图。此外，在网页解锁器中使用无头浏览器时，你可以定义在 JavaScript 渲染期间执行的自定义浏览器指令。

有关此功能的更多信息，请参阅 [**网页解锁器自定义浏览器指令文档。**](/products/cn/web-unblocker/custom-browser-instructions.md)&#x20;

## 参数参考

下面是你可以与 [**参数和头部**](/products/cn/web-unblocker/making-requests/headers.md) 一起使用的关键参数和头部：

| 参数                             | 说明                                   | 示例                           |
| ------------------------------ | ------------------------------------ | ---------------------------- |
| X-Oxylabs-Geo-Location         | 指定请求的地理位置                            | 'United States'、'Germany' 等。 |
| X-Oxylabs-Session-Id           | 使用指定的 ID 创建或继续会话                     | '123randomString'            |
| X-Oxylabs-Render               | 设置为 'html' 或 'png' 时启用 JavaScript 渲染 | 'html'、'png'                 |
| X-Oxylabs-Browser-Instructions | 用于渲染的自定义浏览器指令                        | 包含指令的 JSON                   |

## 迁移清单

1. 将你的代理端点更新为 `brd.superproxy.io:33335` 到 `unblock.oxylabs.io:60000`
2. 将基于区域的地理定位替换为 `X-Oxylabs-Geo-Location` 头部
3. 将身份验证凭据更新为你的 Oxylabs 代理用户用户名和密码
4. 添加 `verify=False` 到你的请求中，以忽略 SSL 证书验证
5. 利用会话和 POST 请求等 Oxylabs 独特功能


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.oxylabs.io/products/cn/web-unblocker/migration-guides/from-bright-data-web-unlocker.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
