【问题标题】:page.goto freezes on Google Cloud Functions for some websitespage.goto 在某些网站的 Google Cloud Functions 上冻结
【发布时间】:2019-03-23 21:49:54
【问题描述】:

我正在使用:

Puppeteer version: 1.13.0
Platform / OS version: Google Cloud
Node.js version: 8

await.page.goto("https://somewebsite.com") 在我将其部署到 Google Cloud 功能时冻结。

我收到超时错误。 Navigation Timeout Exceeded

    const browser = await puppeteer.launch({
      headless: true,
      ignoreHTTPSErrors: true,
      args: [
        '--disable-gpu',
        '--disable-dev-shm-usage',
        '--disable-setuid-sandbox',
        '--no-first-run',
        '--no-sandbox',
        '--no-zygote',
        '--single-process', // <- this one doesn't works in Windows
      ]
    });

    const page = await browser.newPage();

    try {
      await page.goto('https://somewebsite.com',
                      { waitUntil: 'networkidle2' });
    } catch (error) {
      console.log('page.goto ERROR: ', error);
    }

我可以看到它在不同的环境中工作:

  • AWS
  • 本地

它适用于除 Google Cloud Functions 之外的所有功能。但是,如果我尝试google.com,它会起作用。

问题是错误根本没有帮助,page.goto 只是超时。

我想知道是否有适当的方法来调试它?

可能是操作系统问题? 但话说回来,AWS 和 Google 云都是基于 Linux 的?

【问题讨论】:

  • 您的 Google Cloud 项目是否有付款计划?
  • 是的,我将它用于多个项目。它的付费计划。
  • 无论如何,我建议您分享MCVE,即使您认为没有意义。你仍然可能在某个地方犯了一个没有出现在其他地方的错误。没有代码,我们永远不会知道。
  • 同样的问题,我们这边的超时似乎完全是随机的(同一个网站有时有效,有时无效,发生在谷歌网站和随机网站上)。
  • 您可以通过设置环境变量DEBUG="puppeteer:*" 来启用详细日志记录。查看debugging tips 了解更多信息。

标签: firebase google-cloud-functions chromium puppeteer


【解决方案1】:

显然 Puppeteer 版本 1.13.0 中存在时间问题。尝试降级到 1.11.0,它应该可以正常工作。

this Stackoverflow question 回答了类似的问题。它指向this discussion

【讨论】:

  • 我试过了,没用。 page.goto 冻结,我什至无法导航到页面。
  • 我遇到了同样的问题。我使用 page.goto 方法添加了 4 个要加载的网页。 3 执行没有错误,4 有 30000 毫秒超时。然后我更改了我的 GCF 设置并正确执行。我的 GCF 设置为 Nodejs 8 环境,Puppeteer 1.11.0 版本,分配的内存 1 GB,超时 300 秒。试试这个设置,让我知道它是否适合你。
  • 这正是我所拥有的设置:(问题是只有这个特定的网站根本没有加载。我猜它有一些错误(可能是 ssl 错误,真的不确定),这不是在 Chromium 中的 Google 云 Linux 上正确处理,但它可以在其他任何地方工作,例如 AWS 或我的本地 MAC 机器
  • 您能分享您遇到此问题的网站吗?我想尝试复制这个问题。
  • 我在 Google Cloud Platform Support 工作,但为了提供进一步的帮助,您必须创建一个 private issue tracker > For Google Cloud Functions component,以便我们可以访问您的项目并进一步调查。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-03
  • 1970-01-01
  • 2017-08-24
  • 1970-01-01
  • 2019-03-11
  • 2019-12-01
相关资源
最近更新 更多