前段时间接了个需求:手里几十个淘宝号,要定期补评价。手动切账号太折磨人,纯脚本又被风控杀得厉害。
研究了一圈,最终选了比特浏览器做指纹隔离层,Python写调度脚本。折腾了两周,总算跑通了。
把核心代码和思路整理出来,对想搞类似工具的朋友应该有帮助。

一、为什么是比特浏览器?
一开始尝试过普通爬虫方案:
- • selenium调用本地Chrome,指纹暴露太快,一周封号率30%+
淘宝风控会抓这些东西:
普通浏览器换IP没用,指纹还是那个指纹。比特浏览器每个环境独立配置这些参数,相当于在不同电脑上操作。

二、对接比特浏览器API
比特客户端开启本地API后(默认端口54345),可以直接HTTP调用。
获取环境列表:
import requestsdefget_envs(): resp = requests.get("http://127.0.0.1:54345/browser/list", headers={"Authorization": "你的key"})return resp.json().get("data", [])
打开指定环境:
defopen_env(env_id): resp = requests.post("http://127.0.0.1:54345/browser/open", json={"id": env_id}, headers={"Authorization": "你的key"}) ws_url = resp.json()["data"]["ws"]return ws_url
返回的ws_url长这样:ws://127.0.0.1:54345/devtools/xxx
三、连接浏览器并操作
这里我用DrissionPage替代了selenium,特征更少,过检率更高。
from DrissionPage import ChromiumPagedefdo_review(ws_url, product_url, text, images):# 连接已打开的浏览器环境 page = ChromiumPage() page.connect_to_existing(ws_url)# 访问商品 page.get(product_url)# 模拟随机滚动 page.run_js(f"window.scrollTo(0, {random.randint(300, 900)})") time.sleep(random.uniform(2, 5))# 找评价按钮 btn = page.ele("text:写评价", timeout=10)ifnot btn: btn = page.ele(".rate-btn", timeout=5) btn.click()# 切iframe iframe = page.ele("iframe[src*='rate']") page.to_frame(iframe)# 填内容 ta = page.ele("textarea")for c in text: ta.input(c) time.sleep(random.uniform(0.05, 0.12))# 传图for img in images: page.ele("input[type=file]").input(img) time.sleep(1)# 提交 page.ele("text:提交").click()
跑通之后,把整个流程套进循环里,一个环境接一个环境跑就行。
四、遇到的几个坑
- 1. iframe切换:淘宝的评价弹窗是iframe,不切进去找不到textarea。用
wait.frame()等待加载比较稳。 - 2. 登录态失效:Cookie大概保持2-3天。我的方案是检测登录状态,失效了弹窗提醒手动扫码,或者提前做Cookie刷新。
- 3. 滑块验证码:目前接的打码平台,识别率大概70%。频繁操作容易被滑块拦住,合理的间隔和随机化能缓解。
- 4. 打字速度:直接
input(text)一次性填入太假了。逐字输入+随机间隔,更像真人。
五、目前的运行表现
机器配置:i5+16G内存,同时开6个环境不卡。
一个月数据:跑了大概800条评价,被封的号3个,封号率4%以内。多数是代理质量问题。
六、工具成品
断断续续做了两周,现在已经打包成exe了,配合比特浏览器用就行。
不卖源码,这东西卖源码没意义,环境一变就得改。
成品带配置教程,到手直接跑。
私聊带需求来问,别只发一个“多少钱”。

七、最后说两句
这工具不是用来批量刷单躺赚的。它只是帮你省掉手动切号、手动点鼠标的时间。
适合本来就在做这个事、有号有代理的人。零基础想靠它发财的,找别人吧。
代码都贴在上面了,有动手能力的自己就能写出来。懒得折腾的,来找我拿成品。
补充: 有其他电商平台需求的(京东、拼多多),可以改,另外算。