🌐 连接 TgeBrowser 指纹浏览器
简介
TgeBrowser 提供 API 接口启动浏览器,可配合 DrissionPage 进 行自动化控制。
适用场景: 批量操作、数据采集、自动化测试
安装依赖
pip install DrissionPage requests
快速开始
完整示例代码
import requests
import time
from DrissionPage import ChromiumPage, ChromiumOptions
# ========== 配置 ==========
API_BASE_URL = "http://127.0.0.1:50326"
API_KEY = "your_api_key_here" # 在 TgeBrowser 客户端获取
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# ========== 步骤 1: 创建浏览器环境 ==========
print("1. 创建浏览器环境...")
response = requests.post(
f"{API_BASE_URL}/api/browser/create",
json={
"browserName": "自动化测试", # 环境名称
"proxy": {
"protocol": "socks5",
"host": "proxy.example.com",
"port": 8888,
"username": "username",
"password": "password",
},
"fingerprint": {
"os": "Windows",
"platformVersion": 11,
"kernel": "135",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.9.2537 Safari/537.36",
"canvas": True,
"speechVoices": True,
"clientRects": True,
"fonts": ["Arial", "Courier New"],
"disableTLS": [],
"resolution": "1920x1080",
"ram": 8,
"cpu": 4,
"language": "en-US",
"languageBaseIp": True,
"timezone": "Europe/Amsterdam",
"timezoneBaseIp": True,
"hardwareAcceleration": True,
"disableSandbox": False,
"startupParams": "",
"deviceName": "DESKTOP-ABCD",
"portScanProtection": ""
},
"startInfo": {
"startPage": {
"mode": "custom",
"value": [
"https://www.baidu.com"
]
},
"otherConfig": {
"openConfigPage": False,
"checkPage": True,
"extensionTab": True
}
}
},
headers=headers
)
env_id = response.json()["data"]["envId"]
print(f" 环境创建成功,ID: {env_id}")
# ========== 步骤 2: 启动浏览器 ==========
print("2. 启动浏 览器...")
response = requests.post(
f"{API_BASE_URL}/api/browser/start",
json={"envId": env_id},
headers=headers
)
debug_port = response.json()["data"]["port"]
print(f" 浏览器已启动,调试端口: {debug_port}")
# ========== 步骤 3: 连接 DrissionPage ==========
print("3. 连接 DrissionPage...")
time.sleep(3) # 等待浏览器完全启动
# 方式1: 通过端口连接(推荐)
co = ChromiumOptions().set_local_port(debug_port)
page = ChromiumPage(addr_or_opts=co)
# 方式2: 直接使用端口号
# from DrissionPage import Chromium
# page = Chromium(debug_port)
# 方式3: 使用地址:端口
# page = Chromium(f'127.0.0.1:{debug_port}')
# 方式4: 使用 WebSocket URL(需要先获取 ws_url)
# ws_url = response.json()["data"]["ws"]
# page = Chromium(ws_url)
print(" DrissionPage 连接成功")
# ========== 步骤 4: 执行自动化操作 ==========
print("4. 执行自动化操作...")
# 访问网页
page.get('https://www.example.com')
print(f" 当前页面: {page.title}")
# 更多操作示例
page.get_screenshot('screenshot.png') # 截图
print(" 已保存截图")
print("\n完成!")
代码说明
步骤 1: 创建浏览器环境
response = requests.post(
f"{API_BASE_URL}/api/browser/create",
json={
"browserName": "自动化测试", # 环境名称
"proxy": {
"protocol": "socks5",
"host": "proxy.example.com",
"port": 8888,
"username": "username",
"password": "password",
},
"fingerprint": {
"os": "Windows",
"platformVersion": 11,
"kernel": "135",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.9.2537 Safari/537.36",
"canvas": True,
"speechVoices": True,
"clientRects": True,
"fonts": ["Arial", "Courier New"],
"disableTLS": [],
"resolution": "1920x1080",
"ram": 8,
"cpu": 4,
"language": "en-US",
"languageBaseIp": True,
"timezone": "Europe/Amsterdam",
"timezoneBaseIp": True,
"hardwareAcceleration": True,
"disableSandbox": False,
"startupParams": "",
"deviceName": "DESKTOP-ABCD",
"portScanProtection": ""
},
"startInfo": {
"startPage": {
"mode": "custom",
"value": [
"https://www.baidu.com"
]
},
"otherConfig": {
"openConfigPage": False,
"checkPage": True,
"extensionTab": True
}
}
},
headers=headers
)
env_id = response.json()["data"]["envId"]
说明:
- 调用
/api/browser/create接口创建浏览器环境 browserName- 给环境起个名字,方便识别proxy- 代理- 返回
envId- 环境ID,后续操作都需要用到