我目前正在使用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中正常加载。
答案 0 :(得分:0)
安装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();
})()