Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Selenium从标记中查找元素_Python_Selenium_Xpath_Web Crawler - Fatal编程技术网

Python Selenium从标记中查找元素

Python Selenium从标记中查找元素,python,selenium,xpath,web-crawler,Python,Selenium,Xpath,Web Crawler,我想从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> 然后

我想从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>
然后是列表理解,以获得实际的酒店名称,而不是selenium对象

availabilities_element = browser.find_elements_by_xpath("(//span[contains(.,'nur noch')])[2]")
availabilities = [x.text for x in availabilities_element]

但是我在获取数据方面仍然有一些问题。我希望能得到一份可用房间的清单(只是数字,没有更多)。有没有一种干净简单的解决方案?

欢迎使用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'))

假设该属性仅与剩下的房间关联,只需使用属性选择器即可

rooms_left = [item.get_attribute('data-x-left-count') for item in driver.find_elements_by_css_selector("[data-x-left-count]")]
请尝试API:。我确信删除他们的网站是违反TOS的。