Selenium find_elements_ из тега - PullRequest
       22

Selenium find_elements_ из тега

0 голосов
/ 04 мая 2019

Я хочу получить информацию об отеле от Booking.com.Веб-сайт предоставляет некоторую информацию об отеле, в данном конкретном случае, сколько номеров еще доступно.Ниже показан тег span с веб-сайта Booking.com, и я хочу извлечь только количество данных-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]")

А затем составление списка для получения фактических названий отелей, а не объектов селена.

availabilities = [x.text for x in availabilities_element]

Но у меня все еще есть некоторые проблемычтобы получить данные.Я ожидаю получить список (только номера и ничего больше) доступных номеров.Есть ли способ для чистого простого решения?

Ответы [ 2 ]

0 голосов
/ 05 мая 2019

Предполагая, что атрибут связан только с оставшимися комнатами, вы можете просто использовать селектор атрибута

rooms_left = [item.get_attribute('data-x-left-count') for item in driver.find_elements_by_css_selector("[data-x-left-count]")]
0 голосов
/ 04 мая 2019

Добро пожаловать на 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'))
...