注意:我在任何其他類似問題中都沒有找到相關的可行解決方案。

我的嘗試如下。
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
options = Options()
driver = webdriver.Chrome(ChromeDriverManager().install())
url = "https://www.udemy.com/courses/development/?p=1"
driver.get(url)
time.sleep(2)
#data = driver.find_element('//div[@]')
#data = driver.find_element_by_xpath('//div[contains(@class, "price-text--price-part"]')
#data=driver.find_element_by_css_selector('div.udlite-sr-only[attrName="price-text--price-part"]')
print(data)
他們中沒有一個為我作業。那么,有沒有辦法通過包含特定文本的類來選擇元素?
在這個例子中,要查找的文本是:“ price-text--price-part ”
uj5u.com熱心網友回復:
第一個 xpath 不會突出顯示 DOM 中的任何元素。
第二個 xpath 沒有包含的右括號
//div[contains(@class, "price-text--price-part"]
should be
//div[contains(@class, "price-text--price-part")]
像下面這樣嘗試,它可能會奏效。(當我嘗試將網站檢測為機器人并且未加載價格時)
driver.get("https://www.udemy.com/courses/development/?p=1")
options = driver.find_elements_by_xpath("//div[contains(@class,'course-list--container')]/div[contains(@class,'popper')]")
for opt in options:
title = opt.find_element_by_xpath(".//div[contains(@class,'title')]").text # Use a dot in the xpath to find element within in an element.
price = opt.find_element_by_xpath(".//div[contains(@class,'price-text--price-part')]/span[2]/span").text
print(f"{title}: {price}")
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/339773.html
