木偶提供实时数据吗?

问题描述

我正在尝试通过网络抓取每个得分变化的实时得分。木偶可以这样做吗?如果可以,我应该在这代码添加些什么,以便它返回实时数据。

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('site to go');
  await page.waitForSelector('input[name="username"]');
  await page.type('input[name="username"]','username');
  await page.type('input[name="password"]','password');
  await page.click('button[type="submit"]');
  let score = await page.evaluate(() => document.getElementById("scores").innerHTML);
})();

解决方法

您可以使用{owner: ""}注册一个回调函数:

exposeFunction

然后您可以在await page.exposeFunction('newScore',s => console.log(s)); 事件上调用该函数:

DOMSubtreeModified