为什么 Headless 需要为 False 才能让 Puppeteer 工作?
虽然 Headless 模式对于在不打开浏览器界面的情况下自动执行任务非常有用,某些网站采用了检测无头浏览器的反抓取措施。
无头模式检测的解决方法
-
使用 puppeteer-extra:
- 该库提供了 puppeteer-extra-plugin-anonymize-ua 和 puppeteer-extra-plugin-stealth 等插件来匿名化用户代理并逃避无头检测。
-
运行“真实”Chromium 实例:
- 启动 Puppeteer 可以连接的可见 Chromium UI,而不是创建无头实例。
- 使用 --remote-debugging-port=9222 执行 Chrome/Chromium 并通过 wait puppeteer.connect({ browserURL: ENDPOINT_URL });.
连接到它
附加说明
- 无头模式检测技术正在不断发展。
- 存在其他绕过检测的策略,但可能需要更高级的技术知识。
- 检查页面的源代码或网络请求可以为可能的反抓取措施提供有价值的见解。
请记住,网络抓取应该符合道德并尊重网站所有者的服务条款。
以上是为什么 Puppeteer 要求某些网站的 Headless 为假?的详细内容。更多信息请关注PHP中文网其他相关文章!