Javascript 木偶演员-如何浏览网页?

Javascript 木偶演员-如何浏览网页?,javascript,node.js,puppeteer,Javascript,Node.js,Puppeteer,我希望使用木偶演员来浏览一个脚本繁重的网站。我尝试了以下代码段,但由于加载后续网页时超时,它将失败 我还尝试包含此参数 {waitUntil:networkidle0/networkidle2/load/domcontentload} 在page.goto()中,但没有成功 该网站有很多广告脚本在后台运行。有人知道吗 谢谢 async function run() { const browser = await puppeteer.launch({ args: ['--no-sandbox'

我希望使用木偶演员来浏览一个脚本繁重的网站。我尝试了以下代码段,但由于加载后续网页时超时,它将失败

我还尝试包含此参数 {waitUntil:networkidle0/networkidle2/load/domcontentload} 在page.goto()中,但没有成功

该网站有很多广告脚本在后台运行。有人知道吗

谢谢

async function run() {
  const browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'] });
  const page = await browser.newPage();
  page.setViewport({ width: 1280, height: 2000 });
  page.on('load', () => console.log('Page loaded!', page.url()));
  //Goto website home page
  await page.goto('https://www.discuss.com.hk');
  await page.screenshot({ path: 'dis1.png' });
  //goto another page in the website
  await page.goto('http://www.discuss.com.hk/forumdisplay.php?fid=215');
  await page.screenshot({ path: 'dis2.png' });
  //Goto another page in the website
  await page.goto('http://www.discuss.com.hk/forumdisplay.php?fid=1192');
  await page.screenshot({ path: 'dis3.png' });
  //Goto  another page in the website
  await page.goto('http://www.discuss.com.hk/viewthread.php?tid=27173245&extra=page%3D1');
  await page.screenshot({ path: 'dis4.png' });
  await browser.close();
  return 'done!';
}

试着等待一些东西先回来。我的经验法则是,每次我请求一个新资源(单击一个按钮,转到一个url),我总是执行一个
waitForSelector
,在您的情况下,您可以使用它

await page.waitForSelector('#footer');
以下脚本可以工作并创建3个png文件:-

const puppeteer = require('puppeteer'); 

async function run() {

    const browser = await puppeteer.launch( {
        headless: false //true
    }); 

    const page = await browser.newPage(); 
    await page.setViewport({ width:1280, height:2000});

    await page.goto('https://www.discuss.com.hk');
    await page.waitForSelector('#footer');
    await page.screenshot({ path: 'dis1.png' });

    await page.goto('http://www.discuss.com.hk/forumdisplay.php?fid=215');
    await page.waitForSelector('#footer');
    await page.screenshot({ path: 'dis2.png' });

    await page.goto('http://www.discuss.com.hk/forumdisplay.php?fid=1192');
    await page.waitForSelector('#footer');
    await page.screenshot({ path: 'dis3.png' });

    await browser.close(); 
}; 

run(); 

谢谢你的建议。但它在我的环境中不起作用。我在Linux容器下运行它。所以我不能使用
{headless:false}
。我应该澄清一下,脚本有时会成功。假设我在我的云开发环境中尝试它时是四分之一。我不确定这是否与环境有关。如果您想查看容器正在做什么,可以在此处测试脚本的各个方面。这是一个交互式调试器,显示您的站点+,可访问devtools,并在linux上运行container@griffith_joel,它是如何工作的?提示说
console.log
将打印到调试窗口。但即使我只有一条语句
console.log(“一二三”)
然后按下绿色播放按钮。没有要查看的内容。很抱歉,调试器已关闭,请立即重试!