【问题标题】:Selenium find_elements_ from a tag硒从标签中找到_elements_
【发布时间】:2019-09-22 11:26:00
【问题描述】:

我想从 Booking.com 上抓取一些酒店信息。该网站提供了一些酒店信息,在这种特殊情况下,还有多少房间可用。下面显示了来自 Booking.com 网站的 span 标签,我只想提取所有列出的酒店的 data-x-left-count 数量。

<span class="only_x_left sr_rooms_left_wrap " data-x-left-count="6">
Nur noch 6 Zimmer auf unserer Seite verfügbar!
</span>

我试图通过查找元素并返回一个硒对象数组来接近它。

availabilities_element = browser.find_elements_by_xpath("(//span[contains(.,'nur noch')])[2]")

然后是一个列表理解来获取实际的酒店标题,而不是 selenium 对象。

availabilities = [x.text for x in availabilities_element]

但我在获取数据方面仍有一些问题。我希望得到可用房间的列表(只是数字,仅此而已)。有没有一种干净简单的解决方案?

【问题讨论】:

标签: python selenium xpath web-crawler


【解决方案1】:

欢迎来到 SO。这是获取空置房间数量的简单方法。

# get all the vacant room elements
rooms = driver.find_elements_by_xpath("//span[@class='only_x_left sr_rooms_left_wrap ']")
for room in rooms:
    # get the number of elements
    print(room.get_attribute('data-x-left-count'))

【讨论】:

    【解决方案2】:

    假设该属性仅与剩余房间相关联,您可以简单地使用属性选择器

    rooms_left = [item.get_attribute('data-x-left-count') for item in driver.find_elements_by_css_selector("[data-x-left-count]")]
    

    【讨论】:

      猜你喜欢
      • 2021-01-09
      • 2021-08-25
      • 2019-03-31
      • 2012-05-13
      • 1970-01-01
      • 2022-11-18
      • 2023-03-30
      • 1970-01-01
      • 2012-10-04
      相关资源
      最近更新 更多