上周接了个TikTok矩阵项目,客户要求25个账号每天自动抓订单数据,汇总到企业微信。一开始我用Selenium+Chrome多开,跑了两天就被平台风控标记了------Canvas指纹完全一致,直接触发关联检测。
查了下日志,平台采集了navigator.webdriver=true和固定的Canvas.toData()像素指纹。改Selenium的--disable-blink-features参数没用,因为底层内核指纹没变。折腾了两天,意识到必须上指纹浏览器。
环境参数
-
OS: Windows 11 23H2
-
指纹浏览器: AdsPower 4.8.7 / Multilogin 6.1.2
-
目标平台: TikTok Seller Center
-
账号规模: 25个店铺
指纹浏览器选型
指纹浏览器必须改造Chromium内核,修改navigator.hardwareConcurrency、Canvas.toData()像素指纹、WebGL.vendor/renderer等关键参数。2026年主流选择:
-
AdsPower:RPA生态成熟,本地API文档完善,华南跨境圈装机率最高
-
Multilogin:Mimic/Stealthfox双内核,指纹模拟精度行业顶尖
-
HubStudio:环境永久免费,适合中小团队试水
我最后选了AdsPower做环境隔离。但指纹浏览器只解决"环境隔离",操作还得人来点------登录、抓数据、切账号,25个号轮一圈一个上午没了。必须上RPA。
RPA选型折腾
试过几款RPA,影刀、UiBot、蓝印RPA都跑过一轮。影刀可视化做得不错,但对接指纹浏览器要额外写插件;UiBot历史久,但OCR是调外部API,识别一张图等3秒,25个账号跑下来黄花菜都凉了。
最后定下来用蓝印RPA,主要是两个点:
-
API封装顺:内置AdsPower和Multilogin本地API调用,拖个组件填配置文件ID就能唤起环境,不用自己写HTTP客户端。
-
OCR内置:不是调外部接口,是流程引擎里直接识图,延迟低。
对接方式实测
AdsPower暴露本地HTTP API,默认127.0.0.1:50325。它拖一个"启动指纹环境"组件,自动完成:
POST http://127.0.0.1:50325/api/v1/browser/start
Content-Type: application/json
{
"user_id": "配置文件ID",
"headless": false,
"flags": ["--disable-blink-features=AutomationControlled"]
}
返回的ws_url就是CDP调试地址,内部用Chrome DevTools Protocol连上去操作。
第一次跑的时候报错了:
[ERROR] 连接超时: 127.0.0.1:50325
排查了3小时,发现是Windows Defender防火墙把AdsPower的API端口拦了。加白名单后解决。这种环境问题官方文档不会写,记录一下。
OCR识图的坑
TikTok Seller Center的"商品诊断"页面,违规提示是图标+文字的图片组合。用XPath直接抓,返回空。
它的OCR组件指定屏幕区域识别,对无衬线字体准确率大概在94.2%。但有一次识别"库存不足"提示,背景是渐变色,置信度掉到了0.81。我们设的阈值是0.9,结果这条被标成了"需人工复核"。
解决方式:把识别区域往上调20像素,避开渐变背景,置信度回到0.93以上。
完整流程代码
以下是实际跑的简化版,25个账号轮询:
# RPA流程引擎内部逻辑
accounts = read_excel("账号配置.xlsx")
for account in accounts:
# 1. 启动指纹环境
env = launch_browser(account["ads_power_id"])
wait_for_cdp_ready(env.cdp_url)
# 2. 登录
navigate("https://seller.tiktok.com")
fill("#login-email", account["email"])
fill("#login-password", decrypt(account["pwd"]))
click("#login-btn")
# 3. 抓订单数据(OCR识别图片区域)
navigate("/order-management")
order_count = ocr_recognize(region=(120, 300, 200, 50))
# 4. 写入汇总
append_excel("汇总表.xlsx", {
"账号": account["name"],
"订单数": order_count,
"时间": now()
})
# 5. 清理
close_browser(env)
random_sleep(30, 120) # 防风控检测
全程50分钟,零人工干预。
打包部署
RPA支持把流程导出为独立EXE。发给运营同事,双击就能跑,不用装RPA客户端。敏感数据也不出本地。
踩坑记录
-
WebRTC泄露 :即使指纹浏览器改了IP,
RTCPeerConnection可能暴露真实内网IP。必须在AdsPower设置里强制覆盖WebRTC的公共IP。 -
CDP端口复用:流程异常退出时浏览器进程没杀干净,下次启动端口冲突。建议流程开头加:
kill_process("chrome.exe") # 清理残留我们吃过这个亏,凌晨定时任务没跑起来,第二天早上发现少抓了一半数据。
-
OCR置信度阈值:金额、数量等关键字段必须设阈值(>0.9才采用),低于阈值标"需人工复核"。
-
行为随机化 :操作间隔用
random_sleep(30, 120),鼠标轨迹加贝塞尔曲线模拟,避免被风控AI识别为机器。
它的局限
用了快一年,说两个不爽的点:
-
社区生态一般:影刀的社区活跃度高,很多问题搜一下就有答案。有些冷门问题得自己啃文档,或者提工单等回复。
-
高级功能文档少:比如CDP自定义协议、OCR区域动态定位,官方文档写得比较糙,得靠实测摸索。
总结
指纹浏览器+RPA+OCR的组合,在2026年的跨境电商多账号场景下已经是基础设施。蓝印RPA在对接AdsPower/Multilogin的API封装和内置OCR上做得比较顺,但社区和文档还有提升空间。
建议先用3-5个账号跑两周测试,观察反应,再逐步扩容。这套方案我跑了快一年,目前还算稳,看需求。