我想从Tripadvisor.com上的搜索结果中选择一个使用其元素的网址,但是我的所有努力都没有成功。 这里是我的代码:如何使用Selenium Webdriver从搜索结果中获取元素的文本
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time
driver = webdriver.Chrome()
base_url = 'https://www.tripadvisor.in/'
driver.get(base_url)
hotel = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'mainSearch')))
#hotel = driver.find_element_by_id("mainSearch")
hotel.send_keys('the leela palace')
time.sleep(0.5)
loc = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'GEO_SCOPED_SEARCH_INPUT')))
#loc = driver.find_element_by_id("GEO_SCOPED_SEARCH_INPUT")
loc.send_keys('New Delhi, India')
time.sleep(0.5)
search = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'SEARCH_BUTTON')))
search.submit()
time.sleep(1)
url = driver.find_element_by_class_name("dp_cr.loc1759051")
page_url = url.getAttribute("data-url")
这里是我试图让从信息网站的HTML部分:
<div class="dp_cr loc1759051" data-url="/Hotel_Review-g304551-d1759051-Reviews-The_Leela_Palace_New_Delhi-New_Delhi_National_Capital_Territory_of_Delhi.html?t=304551">
<div class="date_picker_wrap">
<div class="prw_rup prw_datepickers_desktop_horizontal_styleguide_icon" data-prwidget-name="datepickers_desktop_horizontal_styleguide_icon" data-prwidget-init="handlers">
<span class="unified-picker" data-datetype="CHECKIN" data-emptytext="Check In" data-trackingcontext="CheckIn|DATES" data-didcreatedefaultdates="false" data-dateformat="dd/MM/yyyy" onclick="(ta.prwidgets.getjs(this,'handlers')).onDatePickerClick(this, false);">
<span class="picker-inner">
<span class="ui_icon calendar"></span>
<span class="picker-label"> Check In </span></span></span>
<span class="unified-picker" data-datetype="CHECKOUT" data-emptytext="Check Out" data-trackingcontext="CheckOut|DATES" data-dateformat="dd/MM/yyyy" onclick="(ta.prwidgets.getjs(this,'handlers')).onDatePickerClick(this, false);"><span class="picker-inner"><span class="ui_icon calendar"></span> <span class="picker-label"> Check Out </span></span></span></div></div><div class="crOverlayButton"><span class="ui_button original large w100p" onclick="ta.page.gatherDatesNear(this);">Show Prices </span></div></div>
我想获得的数据网址部分脚本,以便我可以将它连接到我的基础URL并跳转到页面。此外,如果有方法可以直接点击搜索结果链接,则会更容易。但我无法找到搜索结果的元素。
这完美的作品! –