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
}
有诀窍:)
我目前正在与 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
}
有诀窍:)