如果类在类中包含更多值,则脚本无法找到元素。例如这个类:
<a class="a-link-normal s-access-detail-page s-color-twister-title-link a-text-normal">
我想只使用类--s-access-detail-page
找到这个元素。
通过查找这样的元素,我收到一个错误,找不到元素:
find_element_by_css_selector("a[class*='s-access-detail-page']")
如果我正在寻找一个包含以下类的元素:
a-link-normal a-text-normal
页面上的类:
解析URL是亚马逊:https://www.amazon.com/s?k=smart+watches&page=1
需要获取产品URL。
您只能使用以下CSS选择器:
.s-access-detail-page
希望它能帮到你!
尝试其中任何一个。这应该工作。
find_element_by_css_selector("a.a-link-normal")
要么
find_element_by_css_selector(".a-link-normal")
要么
find_element_by_css_selector("a.s-access-detail-page")
要么
find_element_by_css_selector("a.s-color-twister-title-link")
确保您有一个等待,您只能使用一个简单的类选择器
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
url = 'https://www.amazon.com/s?k=smart+watches&page=1'
d = webdriver.Chrome()
d.get(url)
links = WebDriverWait(d,10).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".s-access-detail-page")))
linkUrls = [link.get_attribute('href') for link in links]
print(linkUrls)