javascript - Puppeteer 打开 URL 时超时

标签 javascript node.js puppeteer

背景

我正在本地应用程序中运行 Puppeteer,运行良好。当我将其移至生产 Debian 服务器时,它在

处超时

page.goto(url) 函数。

示例

我在网上尝试了很多不同的建议。在下面的示例中,您将看到我尝试过的一些在线建议的选项。我单独尝试过这些方法,也尝试过以不同的方式组合这些方法。是的,我现在就是这么绝望。

const browser = await puppeteer.launch({
      args: [
        '--no-sandbox',
        '--disable-setuid-sandbox',
        '--ignore-certificate-errors',
        '--ignore-certificate-errors-spki-list',
        '--user-data-dir']});
    const page = await browser.newPage();
    await page.goto(
      `https://example.com/${template}?data=${JSON.stringify(req.body)}`, {waitUntil: 'networkidle0'}
    );

page.goto(url) 在本地工作,但在服务器上运行时失败。

问题

为什么page.goto()在服务器上失败,有什么解决办法吗?

最佳答案

page.setDefaultNavigationTimeout 是您的选择

const browser = await puppeteer.launch({
  args: [
    '--no-sandbox',
    '--disable-setuid-sandbox',
    '--ignore-certificate-errors',
    '--ignore-certificate-errors-spki-list',
    '--user-data-dir']});

const page = await browser.newPage();
page.setDefaultNavigationTimeout(3600); // 1 hour
await page.goto(
  `https://example.com/${template}?data=${JSON.stringify(req.body)}`, {waitUntil: 'networkidle2'}
);

引用https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagesetdefaultnavigationtimeouttimeout

关于javascript - Puppeteer 打开 URL 时超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50689868/

相关文章:

html - 为什么这个请求返回 200(来自缓存)而其他请求返回 304?

javascript - 页面评估的返回值( puppeteer 操纵者,异步编程)

javascript - localStorage 与 Puppeteer 的奇怪行为

javascript - 复选框不想切换启用禁用字段

javascript - 如何为多个ajax调用设置延迟并为其绑定(bind)停止按钮?

javascript - 隐藏用户地址栏中的主题标签

javascript - 如何在 Puppeteer 中尽快获取文档响应并运行 javascript?

javascript - 如何在 jQuery 中解析 JSON

sql-server - 在node.js应用程序中创建mssql连接池

javascript - 如何使用 Meteor 的 WebApp 访问 HTTP POST 主体(表单数据)?还是其他什么?