# BrightData 代理串高级用法 # 📄 BrightData 代理 URL 使用指南 **适用于:BrightData Residential / Datacenter / Mobile Proxies** --- ## 🔗 1. 代理 URL 格式解析 示例 URL: ```plaintext http://brd-customer-hl_333c2-zone-myproxy-country-us-session-11111vy0c ``` ### ✅ 结构拆解: | **部分** | **说明** | | --- | --- | | brd-customer-hl_665225c2 | 客户 ID(固定,由 BrightData 分配) | | zone=myproxy | 代理子账号名称 | | country=us | 目标国家代码(ISO 3166-1 alpha-2,如 us, gb, jp) | | session=11111vy0c | 会话 ID(用于控制 IP 是否复用) | | proxypassword | 代理子账号密码 | | brd.superproxy.io:22225 | BrightData 全球统一代理网关 | > 💡 **关键参数均通过用户名(username)中的字段传递**,这是 BrightData 的特殊设计。 --- ## 🌍 2. 如何指定国家(Country) 只需修改 `country=xx` 部分即可。 ### 示例: ```plaintext # 美国 IP ...-country-us-... # 英国 IP ...-country-gb-... # 日本 IP ...-country-jp-... # 德国 IP ``` > ✅ 支持所有 BrightData 覆盖的国家([完整国家列表](https%3A%2F%2Fbrightdata.com%2Fcountries)) > ⚠️ 如果指定的国家无可用 IP,请求可能失败或返回默认地区 IP(取决于 Zone 设置) --- ## 🔁 3. 如何更换 IP(获取新 IP) BrightData 使用 `**session**`** 参数控制 IP 复用**: - **相同 **`**session**`** 值 → 复用同一个出口 IP**(通常维持 5 分钟以上) - **不同 **`**session**`** 值 → 获取全新 IP** ### ✅ 方法:修改 `session` 字段 #### 示例: ```plaintext # Session A: 固定 IP #1 ...-session-abc123@... # Session B: 固定 IP #2(与 abc123 不同) ``` > 🔑 **只要 **`**session**`** 值不同,就会分配新 IP**(即使其他参数相同) ### 💡 编程建议: 在代码中动态生成随机 session ID 来每次获取新 IP: ``` import random import string def generate_session_id(length=10): return ''.join(random.choices(string.ascii_lowercase + string.digits, k=length)) session = generate_session_id() ``` --- ## 🔒 4. 如何保持 IP 不变(固定 IP) 只需 **在多次请求中使用相同的 **`**session**`** 值**。 ### ✅ 规则: - 同一个 `session` 在 **5 分钟内有效** - 在此期间,所有使用该 session 的请求将通过 **同一个出口 IP** - 超过 5 分钟无活动,IP 可能被回收 ### 示例(固定美国 IP): ```plaintext http://brd-customer-hl_665225c2-zone-myproxy-country-us-session-my_fixed_ip_001:xxxxy0c@brd.superproxy.io:22225/ ``` > 🕒 建议:如果需要长时间固定 IP,每 5~8 分钟发一次心跳请求以保持会话活跃。 --- ## 🛠️ 5. 完整使用示例(Python requests) ``` import requests # 固定美国 IP(session = "my_session_1") proxy_url = "http://brd-customer-hl_665225c2-zone-myproxy-country-us-session-my_session_1:xxxxy0c@brd.superproxy.io:22225/" proxies = { "http": proxy_url, "https": proxy_url } try: resp = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10) print(resp.json()) # 显示出口 IP except Exception as e: ``` --- ## ⚙️ 6. 其他高级参数(可选) 你还可以在 username 中添加更多参数(用 `-` 连接): [电子表格] > 📌 完整参数文档:[BrightData Proxy Parameters](https%3A%2F%2Fdocs.brightdata.com%2Fapi-reference%2Fproxy%2Fgeolocation-targeting%23city-targeting) --- ## ❗ 注意事项 1. **密码(**`**proxypassword**`**)是敏感信息**,切勿泄露或提交到 Git。 1. **不要硬编码 session** 用于大规模爬虫,避免 IP 被目标网站封禁。 --- ## ✅ 总结:核心操作速查 [电子表格] ---