无法使用Selenium刮取多个房间名称

2024-09-27 07:35:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经编写了从The Hilton中删除酒店名称(以及最终价格)的代码

我使用类名选择表示酒店信息存储位置的HTML块,然后使用XPATH尝试刮取酒店名称。但是,它只输出特定于该XPATH的酒店名称,而不是该页面上的所有酒店名称。这是该酒店特有的XPATH,还是有其他方法在该页面上获取所有酒店名称

from selenium import webdriver
import time
url = 'https://www.hilton.com/en/search/hilton-honors/?query=London&arrivalDate=2021-09-20&departureDate=2021-09-30&flexibleDates=false&numRooms=1&numAdults=1&numChildren=0&room1ChildAges=&room1'

    
driver = webdriver.Chrome(executable_path='C:\\Users\\conor\\Desktop\\diss\\chromedriver.exe')
driver.get(url)
time.sleep(10)


working = driver.find_elements_by_class_name('flex.flex-wrap.py-4.border-border.border-b')
for work in working:
    name = work.find_element_by_xpath('//*[@id="hotel-LONCOCI"]').text
    print(name)

Tags: nameimport名称urlbytimedriver页面
1条回答
网友
1楼 · 发布于 2024-09-27 07:35:42

XPATH似乎包含一个与每个特定酒店相关的ID,因此只能输出我使用的XPATH中的ID

包含hotel名称的HTML块在类名中包含一个名为“leading”的元素。下面对代码进行的调整使其正常工作

name = work.find_element_by_class_name('leading-snug').text

尽管如此,似乎只有当网站的cookies首选项页面关闭后,抓取才会起作用

相关问题 更多 >

    热门问题