javascript - puppeteer 总是在一个网站上超时

标签 javascript node.js chromium puppeteer

我目前正在使用puppeteer来获取跟踪信息的屏幕截图,它适用于我使用的8个网站中的6个,但是对于2个网站,它似乎总是超时。当我手动访问网站并查看网络流量时,似乎没有任何大文件或任何需要花费300多秒才能加载的文件,但超时了。我也不知道该如何解决此问题,因为直到通知我超时为止,我才真正看到木偶在做什么。

我相信这两个网站是同一家公司,因此他们在网站上做了某些事情来防止这种情况,但是我不确定他们的运作方式。

网站是https://www.maersk.com/https://www.safmarine.com/

我当前正在使用的代码:

const puppeteer = require('puppeteer')

const browser = await puppeteer.launch();

const page = await browser.newPage();
await page.goto('https://www.maersk.com/'); //Or replace with https://www.safmarine.com/

console.log(await page.content());
await page.waitFor(5000)
await page.screenshot({path: 'screenshot.png'});

await browser.close();


我不太确定为什么会发生这种情况,因为这些网站似乎是正常的网站,应该在puppeteer中加载良好。

最佳答案

用户下面的代码工作正常。检查结果。
enter image description here
enter image description here

安装NPM软件包。

“ npm我操纵up的额外的操纵up的额外插件的隐身--save”

(async()=>{
    const puppeteer = require("puppeteer-extra");
    const pluginStealth = require("puppeteer-extra-plugin-stealth");
    await puppeteer.use(pluginStealth());
    await puppeteer.use(
        require("puppeteer-extra-plugin-anonymize-ua")({ makeWindows: true })
    )
    await puppeteer.use(require("puppeteer-extra-plugin-stealth")())
    const browser = await puppeteer.launch({
        args: ['--no-sandbox', '--disable-setuid-sandbox',
            '-disable-gpu', '--disable-infobars'
        ],
        slowMo: 100,
        ignoreHTTPSErrors: true
    })

    const page = await browser.newPage();
    await page.goto('https://www.safmarine.com/'); //Or replace with https://www.safmarine.com/

    console.log(await page.content());
    await page.waitFor(5000)
    await page.screenshot({path: 'screenshot2.png'});

    await browser.close();
})()

关于javascript - puppeteer 总是在一个网站上超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56814629/

相关文章:

javascript - Node js : Automated Broadcast, facebook 信使

Node.js winston 记录器;将日志插入日志文件时如何从换行符开始?

javascript - Chromium 内部 postMessage 事件

javascript - 使用 case 语句启用/禁用按钮

javascript - 如何获取以编程方式生成的对象的 id?

javascript - 附加的克隆表单刷新页面但不应该

firebase - Cloud Functions 中的 puppeteer.launch 抛出错误

javascript - 使用 Highchart 和 ajax 绘制动态系列和点

javascript - 将 eventListener 或 attachEvent 添加到 Electron 中的 anchor 标记的正确方法是什么?

android - android webview 版本取决于 sdk 还是设备?