☰
别再迷信 Playwright 了,真正决定成败的不是浏览器
2026/10/7 16:07:31 网站建设 项目流程

我以前也以为,只要页面是 JS 渲染的,上 Playwright 或 Selenium,问题基本就解决了。
后来在一个真实项目里,我用同一个目标站点做了三组对比实验,结论非常清楚:

浏览器自动化解决的是页面执行问题,而不是反爬识别问题。

下面是完整过程。

一、为什么很多人会迷信浏览器自动化?

这其实是一条很自然的推理链:

  • requests 抓不到数据
  • 页面是前端渲染
  • 那就“像人一样”打开浏览器

在功能层面,这个逻辑没问题。
但在反爬层面,它恰恰是最容易出错的地方。

网站真正判断的从来不是:

你是不是 Chrome
你能不能跑 JavaScript

而是:

你是不是一个可信、正常、长期存在的访问者。

二、我做了一个非常简单的对比实验

实验目标很明确:
抓取一个不需要登录,但存在反爬的动态页面。

为了避免干扰,我严格控制了变量:

  • 相同的 URL
  • 相同的请求频率
  • 相同的运行时间(30 分钟)

只对比三种常见方案:

  1. requests + 代理 IP
  2. Playwright(不使用代理)
  3. Playwright + 代理 IP(亿牛云代理)

三、方案一:requests + 代理 IP

这是最朴素的一种方式,很多人反而会低估它。

importrequests proxy_host="proxy.16yun.cn"proxy_port="8000"proxy_user="你的用户名"proxy_pass="你的密码"proxies={"http":f"http://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}","https":f"http://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}",}headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64)"}resp=requests.get("https://example.com/data",headers=headers,proxies=proxies,timeout=10)print(resp.status_code)

实验结果出乎意料地稳定:

  • 成功率在 90% 以上
  • 很少出现封 IP
  • 资源占用极低

前提只有一个:
这个站点的数据本身能通过接口或半静态方式拿到。


四、方案二:Playwright,但不使用代理

这是很多人眼中的“终极方案”。

fromplaywright.sync_apiimportsync_playwrightwithsync_playwright()asp:browser=p.chromium.launch(headless=True)page=browser.new_page()page.goto("https://example.com/data")print(page.title())browser.close()

结果却非常典型:

  • 刚开始一切正常
  • 很快开始出现 403
  • IP 被限频
  • CPU 和内存占用明显升高

页面确实能打开,但访问身份并不被信任。

这也是很多爬虫项目“看起来能跑,但跑不久”的根本原因。

五、方案三:Playwright + 代理 IP(完整形态)

fromplaywright.sync_apiimportsync_playwright proxy_config={"server":"http://proxy.16yun.cn:8000","username":"你的用户名","password":"你的密码"}withsync_playwright()asp:browser=p.chromium.launch(headless=True,proxy=proxy_config)page=browser.new_page(user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64)")page.goto("https://example.com/data")print(page.title())browser.close()

这一次结果非常稳定:

  • 成功率最高
  • 可以长时间持续运行
  • 没有明显封禁
  • 成本在可控范围内

六、三种方案放在一起,结论非常直观

方案成功率被封风险成本
requests + 代理 IP高低低
浏览器无代理低高高
浏览器 + 代理 IP最高最低中

七、问题的本质到底在哪里?

这次实验让我彻底改掉了一个认知误区:

反爬防的不是 JavaScript,防的是异常身份。

浏览器自动化只能解决这些问题:

  • JavaScript 执行
  • DOM 渲染
  • 前端逻辑

但解决不了这些问题:

  • IP 信誉
  • 访问历史
  • 请求节奏是否异常

八、什么时候该用浏览器自动化?

适合用的场景:

  • 数据必须通过 JS 才能生成
  • 接口无法直接访问
  • 页面交互复杂

不适合滥用的场景:

  • 接口结构清晰
  • 数据本身稳定
  • 只是为了“图省事”

九、最后一句话

浏览器自动化不是万能钥匙。
它只负责执行页面,而真正决定爬虫生死的,是你的网络身份。

如果你只升级工具,却不设计网络层,
那迟早会发现一个现实问题:

跑得越像人,反而死得越快。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询