快速上手:接管候鸟浏览器环境
本章提供可以直接拷贝运行的 Python 脚本,带您从零到成功接管候鸟指纹环境,完成第一次自动化操作。
完整脚本(拷贝即用)
创建文件 start_selenium.py,粘贴以下代码后修改配置区域:
python
import requests
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
# ============================
# 配置区域:修改为您自己的信息
# ============================
API_URL = "http://127.0.0.1:8186"
SESSION_ID = "替换成您的环境ID" # 在候鸟右键→复制环境ID获取
# 候鸟安装目录下的 chromedriver.exe 路径(或填 None 使用 Selenium Manager 自动匹配)
DRIVER_PATH = r"C:\Program Files (x86)\Mbbrowser_v7.10.20.219\chromedriver.exe"
def start_browser():
"""
第一步:通知候鸟 ApiServer 开启指定环境
第二步:从返回值中取出 debuggerAddress
第三步:用 Selenium 接管该环境
第四步:执行业务逻辑
"""
# ── 第一步:开启候鸟环境 ──────────────────────────
print("⏳ 正在开启候鸟指纹环境...")
try:
response = requests.post(
f"{API_URL}/api/v1/browser/start",
json={"Session_ID": SESSION_ID},
timeout=30
)
data = response.json()
except requests.exceptions.ConnectionError:
print("❌ 无法连接到 ApiServer,请确认 ApiServer 已启动且端口正确!")
return
if data.get("code") != 0:
print(f"❌ 环境启动失败:{data.get('message')}")
return
# ── 第二步:提取远程调试地址 ──────────────────────
# data["data"]["http"] 格式如:127.0.0.1:9222
debugger_address = data["data"]["http"]
print(f"✅ 环境已开启,远程调试地址:{debugger_address}")
# ── 第三步:配置 Selenium 接管候鸟环境 ───────────
chrome_options = Options()
# 这是接管已有浏览器(而不是新建)的关键参数!
chrome_options.add_experimental_option("debuggerAddress", debugger_address)
# 若有候鸟自带的 chromedriver,指定路径;否则留 None 由 Selenium Manager 自动处理
if DRIVER_PATH:
service = Service(executable_path=DRIVER_PATH)
driver = webdriver.Chrome(service=service, options=chrome_options)
else:
driver = webdriver.Chrome(options=chrome_options)
print("🎉 Selenium 接管成功!")
# ── 第四步:执行您的业务逻辑 ─────────────────────
try:
# 打开目标网址
driver.get("https://www.mbbrowser.com")
print(f"📄 当前页面标题:{driver.title}")
# 等待 3 秒,方便肉眼观察浏览器动作
time.sleep(3)
print("✅ 脚本执行完毕!")
finally:
# 重要:这里只是"断开 Selenium 的连接",候鸟浏览器环境会继续保持运行
# 如果您想彻底关闭浏览器,请调用 ApiServer 的 /api/v1/browser/stop 接口
driver.quit()
if __name__ == "__main__":
start_browser()运行脚本:
bash
python start_selenium.py预期输出
⏳ 正在开启候鸟指纹环境...
✅ 环境已开启,远程调试地址:127.0.0.1:9222
🎉 Selenium 接管成功!
📄 当前页面标题:候鸟防关联浏览器 - 多账号安全运营解决方案
✅ 脚本执行完毕!关键代码逐行解析
1. 调用 ApiServer 开启环境
python
response = requests.post(
f"{API_URL}/api/v1/browser/start",
json={"Session_ID": SESSION_ID}
)- 这一步告诉候鸟:"帮我打开 Session_ID 是
XXX的那个指纹环境" - ApiServer 收到请求后,会启动对应的 Chrome 实例,并开放远程调试端口
2. 提取 debuggerAddress
python
debugger_address = data["data"]["http"] # 如:127.0.0.1:9222http字段里是 Chrome 的 远程调试端口地址(通常是127.0.0.1:端口号)- 每个候鸟环境的端口号都不同,由候鸟自动分配,保证多环境并发不冲突
3. 设置 debuggerAddress 接管浏览器(最关键的一步!)
python
chrome_options.add_experimental_option("debuggerAddress", debugger_address)
driver = webdriver.Chrome(options=chrome_options)这就是候鸟 Selenium 自动化与普通 Selenium 最本质的区别:
| 操作 | 普通 Selenium | 候鸟 Selenium |
|---|---|---|
| 创建 driver | 新建一个空白的 Chrome 窗口 | 连接并接管 已有的候鸟指纹浏览器 |
| 指纹状态 | 毫无指纹,裸奔状态 | 完整指纹(UA、Canvas、WebGL、IP 全部就位) |
| Cookie 状态 | 空的,需要重新登录 | 保留上次的登录状态(如果之前已登录过) |
4. 结束后的处理
python
driver.quit() # 断开 Selenium 控制(候鸟环境继续运行)NOTE
driver.quit() 只是断开 Selenium 对浏览器的控制连接,不会关闭候鸟浏览器窗口。
如果您希望完全关闭浏览器,需要额外调用:
python
requests.post(f"{API_URL}/api/v1/browser/stop", json={"Session_ID": SESSION_ID})常见问题排查
❓ 报错 Cannot connect to the Service
原因:chromedriver.exe 版本与候鸟内核版本不匹配。
解决:
- 使用候鸟安装目录自带的
chromedriver.exe,在Service中指定路径 - 或者删掉
DRIVER_PATH配置(设为None),让 Selenium Manager 自动处理
❓ 报错 ConnectionError: Cannot connect to ApiServer
原因:ApiServer 没有启动,或端口被占用。
解决:
- 确认 ApiServer 终端窗口还在运行,没有被关闭
- 确认
API_URL中的端口和--port参数一致 - 检查防火墙是否屏蔽了 8186 端口
❓ 报错 code != 0 环境启动失败
原因:Session_ID 不正确,或该环境已在运行中。
解决:
- 在候鸟界面右键确认复制的是正确的 Session_ID
- 如果环境已在运行,可以先调用 stop 接口关闭再重新开启
❓ 浏览器打开了,但界面不是之前登录的状态
原因:这是第一次开启该环境,还没有登录过,Cookie 是空的。
解决:这是正常情况。接下来请阅读 核心 API 详解 学习如何注入 Cookie 或自动登录。
TIP
脚本跑起来了?下一章 核心 API 通俗详解 教你如何用 Selenium 完成更复杂的操作:元素定位、输入、点击、等待、截图……全都有!
