Chrome headless 加载页面不同于正常 Chrome

Chrome headless loades page differently than normal Chrome

我有一个简单的脚本可以使用 Puppter 来抓取一个停止工作的网页,所以我开始调试。

我发现如果我通过将 headless 选项设置为 true 来启动我的脚本,我的脚本可以按预期工作。

所以我保存了页面内容和屏幕截图,我发现它们确实与页面加载时 headless 设置为 false.

我已启用加载和执行 JavaScript。看起来该页面可以检测它是否以无头模式加载并且可以 render/behave 不同。

如果我的脚本中存在错误或该网页真的可以检测到无头浏览器,知道如何解决问题吗?

在无头模式下启动浏览器时,用户代理更改为 HeadlessChrome
这显然是网页可以检测到的内容,您需要使用以下方法手动设置用户代理:page.setUserAgent(userAgent).

无头启动==真:

Mozilla/5.0 ... AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/80.1.5.115 Safari/537.36

无头启动==false:

Mozilla/5.0 ... AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36