[英]Extract a hyperlink from a website - Selenium
我試圖解決這個問題一段時間,並在打開這個問題之前嘗試了在這里發布的多個解決方案。
我目前正在嘗試使用以下代碼運行刮刀
website = 'https://www.abitareco.it/nuove-costruzioni-milano.html'
path = Path().joinpath('util', 'chromedriver')
driver = webdriver.Chrome(path)
driver.get(website)
main = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "p1")))
我的目標超鏈接中有scheda
字樣:
i = driver.find_element_by_xpath('.//a[contains(@href, "scheda")]')
i.text
我的第一個問題是find_element_by_xpath
只輸出一個超鏈接,第二個問題是到目前為止它沒有提取任何內容。
我很感激任何幫助和/或指導。
您需要改用find_elements
:
for name in driver.find_elements(By.XPATH, ".//a[contains(@href, 'scheda')]"):
print(name.text)
請注意, find_elements
將返回 web 元素列表,而find_element
返回single web element
。
如果您專門尋找href
attribute
則可以嘗試以下代碼:
for name in driver.find_elements(By.XPATH, ".//a[contains(@href, 'scheda')]"):
print(name.get_attribute('href'))
有2個問題,看網站。
假設您想要抓取所有這些鏈接的 URL,您可以使用 .get_attribute('href') 而不是 .text,如下所示:
url_list = driver.find_elements(By.XPATH, './/a[contains(@href, "scheda")]')
for i in url_list:
print(i.get_attribute('href'))
它將檢測符合您標准的所有網絡元素並將它們存儲在列表中。 我只是以打印為例,但顯然您可能想做的不僅僅是打印鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.