Puppeteer - 按类名计数元素

时间:2018-06-01 14:34:39

标签: javascript node.js puppeteer

我正在尝试将有关具有特定类名的所有元素的信息添加到数组中。

问题是这是一个动态生成的HTML页面,只要我向下滚动,就会出现该类名的新元素。

幸运的是,我事先知道有多少这些元素存在。

所以我的假设解决方案是检查具有该特定类名的元素数量,只要该数字小于我所知道的数字,就继续骂下去。

问题是我不确切知道如何在puppeteer中计算特定类名的元素,而且API也不是很有用。

1 个答案:

答案 0 :(得分:6)

我认为这就是你要找的东西

const puppeteer = require('puppeteer')

async function count () {
  const browser = await puppeteer.launch()
  const page = await browser.newPage()
  await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle2'})
  await page.evaluate(_ => {
    window.scrollBy(0, window.innerHeight)
  })

  console.log('how many?', (await page.$$('td.title')).length)

  await browser.close()
}

count()