puppeteer 在所选页面上执行 js 函数

puppeteer execute a js function on the chosen page

这是分析过的页面 https://www.diretta.it/

本页后面几天的内容都是用js动态加载的,不改变本站URL(你可以在table右上角试试)。

使用puppeteer,代码如下

await page.goto ('https://www.diretta.it/');

它加载今天页面的内容。 有没有办法用明天的内容加载页面? 我必须从接下来几天的比赛中抓取信息

更改日终端的 js executable 函数是:

> set_calendar_date ('1')

您要查找的是 page.evaluate() 函数。 此函数允许您 运行 页面上下文中的任何 JS 函数。

简单来说,运行ning page.evaluate() 类似于打开开发工具并直接在其中写入 set_calendar_date('1')

这是一个工作片段,如果您想亲眼看到它的工作,请不要犹豫,将 {headless: false} 传递给 puppeteer.launch()

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://www.diretta.it/');
  await page.evaluate(() => {
    set_calendar_date ('1');
  });
  await page.waitFor(500); //Wait a bit for the website to refresh contents

  //Updated table is now available
})();