Selenium Webdriver:如何通过 class 名称进行抓取?
Selenium Webdriver: How do I grab by class name?
目标:在我的控制台上打印“Eden Ivy”。
我正在关注 the documentation 的 Selenium Webdriver。
以下是感兴趣的行。这是屏幕截图:
HTML:
<a href="/model/77291/eden-ivy" title="Eden Ivy" class="sc-1b6bgon-7 cGUerq">Eden Ivy</a>
我该如何抓取并打印“Eden Ivy”?
我试过了:
name = driver.find_element_by_class_name('sc-1b6bgon')
print(name)
和
name = driver.find_element_by_class_name('sc-1b6bgon-7 cGUerq')
print(name)
但它们似乎不起作用。我做错了什么?
编辑:我不能在抓取时使用“Eden Ivy”这个词,它必须是按元素。这样我就可以将此功能用于其他名称。
很难使用 class 属性提取 innerHTML,因为它们本质上是动态的。
要打印 innerText
Eden Ivy 属性,您可以使用以下任一方法 :
使用 xpath
和 text 属性:
print(driver.find_element_by_xpath("//h2[text()]//following::div[1]/span/a").text)
理想情况下,您需要为 visibility_of_element_located()
引入 ,您可以使用以下任一方法 :
使用XPATH
和get_attribute("innerHTML")
:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//h2[text()]//following::div[1]/span/a"))).get_attribute("innerHTML"))
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
目标:在我的控制台上打印“Eden Ivy”。
我正在关注 the documentation 的 Selenium Webdriver。
以下是感兴趣的行。这是屏幕截图:
HTML:
<a href="/model/77291/eden-ivy" title="Eden Ivy" class="sc-1b6bgon-7 cGUerq">Eden Ivy</a>
我该如何抓取并打印“Eden Ivy”?
我试过了:
name = driver.find_element_by_class_name('sc-1b6bgon')
print(name)
和
name = driver.find_element_by_class_name('sc-1b6bgon-7 cGUerq')
print(name)
但它们似乎不起作用。我做错了什么?
编辑:我不能在抓取时使用“Eden Ivy”这个词,它必须是按元素。这样我就可以将此功能用于其他名称。
很难使用 class 属性提取 innerHTML,因为它们本质上是动态的。
要打印 innerText
Eden Ivy 属性,您可以使用以下任一方法
使用
xpath
和 text 属性:print(driver.find_element_by_xpath("//h2[text()]//following::div[1]/span/a").text)
理想情况下,您需要为 visibility_of_element_located()
引入
使用
XPATH
和get_attribute("innerHTML")
:print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//h2[text()]//following::div[1]/span/a"))).get_attribute("innerHTML"))
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC