我目前正在使用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中加载良好。
最佳答案
用户下面的代码工作正常。检查结果。
安装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/