Puppeteer - 更新抓取网站的内容

Puppeteer - update content of a scraped website

我想使用 nodejs 创建一个 cli 脚本来抓取不提供 api 的体育结果网站的内容。我知道如何管理scraping的内容,但我有疑问。如果结果发生变化并在 table 内显示到终端 window??

中,是否可以更新抓取的内容

这是一个简化的例子。脚本打开 https://time.is/ and logs the time to the console on each change of the site clock element. It uses page.exposeFunction() and MutationObserver.

import puppeteer from 'puppeteer';

const browser = await puppeteer.launch();

try {
  const [page] = await browser.pages();

  await page.goto('https://time.is/');
  await page.exposeFunction('updateTime', updateTime);

  await page.evaluate(() => {
    const clock = document.querySelector('#clock0_bg');

    const config = { subtree: true, childList: true, attributes: true, characterData: true };
    const callback = function () { window.updateTime(clock.innerText); };
    const observer = new MutationObserver(callback);
    observer.observe(clock, config);
  });
} catch (err) { console.error(err); }

function updateTime(time) {
  console.log(time);
}