提问者:小点点

谷歌登录失败,超文本传输协议错误400说“对不起,那里出了问题。重试。”


我建立了一个脚本,用谷歌浏览器(而不是无头浏览器)打开了我们公司的谷歌网站,并在该页面上进行了一些自动化工作。登录信息必须偶尔刷新,因为我是手动登录的。在上周之前的几个月里,这种方法一直运作良好。今天我注意到,在输入我的Gmail地址并点击下一步按钮时,由于服务器响应HTTP状态为400,我收到了上述错误消息。

Puppeter版本:2.0.0
平台/OS版本:Windows 10
URL(如果适用):https://sites.google.com/...
节点。js版本:v12。13

>

  • 运行木偶脚本打开需要登录的谷歌网站。

    (async () => {
    try {
    const browser = await puppeteer.launch({headless: false, userDataDir: "<ProfileDirectory>"});
    const pageLogin = await browser.newPage();
    await pageLogin.goto('https://sites.google.com/...', {waitUntil: 'networkidle2'});
    ...
    await browser.close();
    }
    catch (error) {
    console.log(error.stacktrace);
    }
    })();
    

    手动输入Gmail地址,然后单击下一步。

    获取错误消息“对不起,这里出了问题。重试。”作为带有HTTP状态代码400的服务器响应的结果。

    手动打开Chrome(与userDataDir相同),相应的谷歌网站仍能正常工作。


  • 共3个答案

    匿名用户

    推荐使用剧作家/木偶师火狐。看起来谷歌在chrome中添加了一些东西,这样他们就可以检测浏览器是否是自动的

    匿名用户

    这篇帖子上的一条评论提到,谷歌试图阻止使用Puppeter、Selenium等进行登录。这可能就是为什么会出现400错误。

    在上面提到的帖子中,最近的一条评论将要点与一些可能仍然有效的示例代码联系在一起,但没有尝试过。

    匿名用户

    当我在为Firefox研究Puppeter时,我注意到(1)Puppeter下载了它正在执行的本地Google Chrome二进制文件,(2)我安装的Puppeter版本2.0.0已经过时。也就是说,木偶演员实际使用的浏览器可能也过时了。解决方案非常简单,可以将Puppeter更新到最新版本2.1.1。