Bor*_*t14 3 python selenium web-scraping
我正在尝试刮除Airbnb清单。除了单击“更多”以外,我想不出一种获取全部设施的方法。我正在使用硒来模拟点击,但是它似乎并不起作用。
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
url = 'https://www.airbnb.com/rooms/4660676'
driver = webdriver.Firefox()
driver.get(url)
elem = driver.find_element_by_xpath('//a[@class="expandable-trigger-more"]')
actions.click(elem).perform()
Run Code Online (Sandbox Code Playgroud)
XPath本身是正确的,但是您尚未定义actions:
from selenium.webdriver.common.action_chains import ActionChains
elem = driver.find_element_by_xpath('//a[@class="expandable-trigger-more"]')
actions = ActionChains(driver)
actions.click(elem).perform()
Run Code Online (Sandbox Code Playgroud)
请注意,您可以简单地使用WebElement的click()方法来代替:
elem = driver.find_element_by_xpath('//a[@class="expandable-trigger-more"]')
elem.click()
Run Code Online (Sandbox Code Playgroud)
为我工作。
如果遇到NoSuchElementException错误,则可能需要等待通过WebDriverWait和可单击的链接element_to_be_clickable。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
element = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, '//a[@class="expandable-trigger-more"]'))
)
element.click()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8009 次 |
| 最近记录: |