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

时间:2019-02-10 22:38:01

标签: javascript node.js web-scraping puppeteer

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

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

使用操纵up,带有以下代码

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

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

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

> set_calendar_date ('1')

1 个答案:

答案 0 :(得分:2)

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

简单来说,运行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
})();