木偶在所选页面上执行js函数

Men*_*nne 1 javascript node.js web-scraping puppeteer

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

在此页面中,接下来几天的内容将随js动态加载,而无需更改网站的URL(您可以在表格的右上角尝试)。

使用puppeteer,并使用以下代码

await page.goto ('https://www.diretta.it/');
Run Code Online (Sandbox Code Playgroud)

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

终端更改日的js可执行文件中的功能是:

> set_calendar_date ('1')
Run Code Online (Sandbox Code Playgroud)

Mad*_*ard 5

您正在寻找的是page.evaluate()功能。此函数使您可以在页面上下文中运行任何JS函数。

简单来说,运行page.evaluate()类似于打开Dev工具并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
})();
Run Code Online (Sandbox Code Playgroud)

  • 您将如何处理 *Cannot find name 'set_calendar_date '* 错误? (2认同)