【问题标题】:page.$eval() selector only using visible elementpage.$eval() 选择器仅使用可见元素
【发布时间】:2020-11-03 12:59:30
【问题描述】:

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

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

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

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

似乎没有额外的参数可以像在中那样通过 .$eval() 传递

.waitForSelector('.selector', {hidden: false})

我是否遵循了错误的想法? 有没有办法只选择显示的元素并使用该数据?

【问题讨论】:

标签: javascript web-crawler puppeteer


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

成功了:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    相关资源
    最近更新 更多