• BifrostNetwork 架构团队
爬虫 / 自动化测试老是被封?搞了一套代理 IP + 指纹浏览器方案
记录如何把住宅代理 IP 和指纹浏览器串起来,用几行代码批量起隔离环境,解决多账号自动化被风控识别的问题。
如果你写过爬虫,或者做过多账号相关的自动化测试,大概率遇到过这些情况:
- 同一个 IP 跑久了,直接被目标网站封掉
- 用 Playwright / Puppeteer 起了一堆 headless 浏览器,结果全都长一个”指纹”,分分钟被识别成机器人
- 想模拟多个独立的浏览环境,手动配置代理、UA、时区、语言这些参数,配一个环境半小时就没了
这篇文章记录一下我们是怎么把「住宅代理 IP」和「指纹浏览器」这两件事串起来,用几行代码就能批量起隔离环境的。
问题拆解
多环境自动化,本质上要解决两个独立又互相关联的问题:
- 网络层:每个环境需要不同的出口 IP,而且最好是住宅 IP(数据中心 IP 太容易被风控标记)
- 浏览器层:每个环境需要独立的浏览器指纹(Canvas、WebGL、字体、时区等),不能所有环境共用一套指纹
单独解决任一个都不难,难的是把两者绑定起来管理——比如你买了 100 个代理 IP,总不能一个个手动配到浏览器 profile 里。
方案
我们用的组合是:住宅代理 IP(按 GB 计费,$0.5/GB,量大不加价)+ 配套的指纹浏览器工具 BifrostBrowser。
核心思路是:账号绑一次之后,买的代理可以批量导入,自动生成一批独立、互相隔离的浏览器 profile,不用逐个手动配置。工具本身原生支持 UDP/QUIC(不是只有传统 TCP/HTTP 的老架构),覆盖 195+ 国家,也有静态 ISP / 数据中心 / IPv6 线路可选。
用代码跑起来
配套提供 REST API,可以直接接 Python / Playwright / Puppeteer。一个最简单的例子:
import requests
from playwright.sync_api import sync_playwright
# 1. 通过 API 拉取一个 profile(已绑定住宅代理)
resp = requests.post(
"https://api.bifrostnetwork.cc/v1/profiles",
json={"country": "US", "proxy_type": "residential"},
headers={"Authorization": "Bearer YOUR_TOKEN"}
)
profile = resp.json()
# 2. 用 Playwright 连接这个隔离环境
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(profile["ws_endpoint"])
page = browser.new_page()
page.goto("https://example.com")
print(page.title())
browser.close()
批量跑的话,把 profile 创建这一步套个循环,配合代理国家/ASN 定向,就能拿到一批指纹互相独立、出口 IP 也不同的浏览器实例,比手动配置省掉了大部分重复劳动。
一些细节
- 计费是按流量(GB)算的,没有月费,买的流量不会过期,适合用量波动比较大的场景(比如只在某几天集中跑任务)
- 客户端 Windows / macOS / Linux 都有,指纹浏览器本身免费用,代理流量单独计费
- 新注册账号有 0.5GB 免费额度,可以先跑通流程再决定要不要买量
小结
如果你的场景是需要「多个互相隔离、出口 IP 不同」的浏览器环境去做自动化(爬虫、多账号管理、广告验证、跨境电商运营等),与其自己手搓代理池 + 反指纹方案,不如看看现成的工具能不能省下这部分时间。