【发布时间】:2021-10-08 12:20:51
【问题描述】:
我是 python 的初学者,我从网络抓取开始,我想从旅游网站提取数据我需要酒店的名称、每家酒店的可用安排和价格,但我卡在了列表中的安排,每家酒店可以有几个安排,但它不起作用,我不知道为什么。 如果你们中的任何人可以帮助我,我会将我的代码和输出提供给你们,并提前感谢你们。
from time import sleep
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
PATH = "C:\\Users\\marketing2\\Documents\\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get('https://tn.tunisiebooking.com/')
wait = WebDriverWait(driver, 20)
# write script //Your Script Seems fine
script = "document.getElementById('ville_des').value ='Sousse';document.getElementById('depart').value ='05/08/2021';document.getElementById('checkin').value ='05/08/2021';document.getElementById('select_ch').value = '1';"
# Execute script
driver.execute_script(script)
# click bouton search
btn_rechercher = driver.find_element_by_id('boutonr')
btn_rechercher.click()
sleep(10)
# click bouton details
btn_plus = driver.find_element_by_id('plus_res')
btn_plus.click()
sleep(10)
#getting the hotel names and by xpath in a loop
hotels=[]
pensions=[]
for v in range(1, 5):
hotel = driver.find_element_by_xpath('/html/body/div[6]/div[2]/div[1]/div/div[2]/div/div[4]/div[' + str(v) + ']/div/div[3]/div[1]/div[1]/span/a/h3').get_attribute('innerHTML')
for j in range (1,3):
pension= driver.find_element_by_xpath('/html/body/div[6]/div[2]/div[1]/div/div[2]/div/div[4]/div[1]/div/div[3]/div[3]/div[1]/div[1]/form/div[1]/div[' + str(j) + ']/u').get_attribute('innerHTML')
pensions.append((pension))
hotels.append((hotel,pensions))
print(hotels)
【问题讨论】:
标签: python selenium loops web-scraping nested-loops