人偶总是在一个网站上超时

时间:2019-06-29 02:13:27

标签: 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中正常加载。

1 个答案:

答案 0 :(得分:0)

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

安装NPM软件包。

“ npm i puppeteer-extra puppeteer-extra-plugin-stealth --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();
})()