page.$eval() 选择器只使用可见元素

page.$eval() selector only using visible element

我目前正在与 puppeteer 合作创建网络爬虫并面临以下问题:

我试图从使用标签中抓取信息的网站。它一次呈现所有这些,并将除一个选项卡之外的所有选项卡的显示 属性 设置为 'none',因此只有一个选项卡可见。

下面的代码总是让我得到第一个航班行,它可以根据爬虫要求的日期隐藏。

const flightData = await page.$eval('.available-flights .available-flight.row', (elements) => {
  // code to handle rows
}

似乎没有可以像在

中那样用 .$eval() 传递的附加参数
.waitForSelector('.selector', {hidden: false})

我是不是误会了? 有没有办法只 select 显示的元素并使用该数据?

const flightData = await page.$eval('.available-flights .available-flight.row:not([style*="display:none"]):not([style*="display: none"])', (elements) => {
  // code to handle rows
}

有诀窍:)