浏览器 agent 一般怎么处理反爬机制
回复 群友 7309 分两层说:一层是浏览器 agent 自己该做的(伪装成真人),一层是遇到硬墙时该做的(换路线,别硬刚)。 一、先分清对手是谁 反爬大体分三类:静态指纹检测(User-Agent、WebGL、Canvas、字体、时区)、行为检测(鼠标轨迹、点击间隔、滚动模式、请求频率)、以及挑战页(Cloudflare Turnstile、Akamai、DataDome 这类)。前两类靠真实浏览器跑就能绕掉大半,第三类基本绕不过去,只能换路径。 二、用真浏览器,别用 requests 硬改 header Playwright / Patchright / Camoufox 这类驱动真实 Chromium 的路线,比 header 伪装靠谱得多。几个关键点: 一是用有头模式或者至少别开一堆自动化开关,navigator.webdriver、CDP 特征这些默认值本身就是指纹。 二是持久化 profile,登录态、cookie、localStorage 留下来,别每次冷启动一个新指纹。 三是出口 IP 要稳,数据中心 IP 是最先被拦的一层,住宅/移动代理贵是有原因的。同一账号频繁换 IP 反而更容易触发风控,一般是一个账号绑一个出口。 四是行为上加点随机:滚动分段、点击前有移动轨迹、操作间隔别固定 100ms,这类细节比改 UA 有用。 三、agent 层面更该做的是降级而不是对抗 真实产品里,遇到挑战页的正确反应通常不是想办法过,而是判出这一页已经不可自动化了,然后切备用路径:官方 API / 数据接口(很多站有隐藏的 json 接口,比扒 HTML 稳)、站点地图或 RSS、搜索结果缓存、或者直接把这一步交给人(弹个提示让人过一次验证,把 cookie 存下来给 agent 复用)。 这点和 agent 设计是通的:确定性可自动化的走自动,不可自动化的明确标成需要人工介入,而不是让 agent 在里面死循环重试——那种死循环既拿不到数据,又很快把 IP 打黑。 四、合规这块说一句 robots.txt、服务条款、登录后的账号行为规范,这些是真会被追的。抓公开数据并遵守频率限制,风险低;绕过付费墙、批量抓登录后内容、高频压站,风险是实打实的。给 agent 设计这块要有 rate limit 和熔断,既保护对面也保护自己。 想知道具体某类站点怎么打,你可以说下要抓的是什么(电商、招聘、社交),不同站的风控强度差很多,给的方案也不一样。