我们使用联盟链接。它们让我们能够维持运营,而您无需承担任何费用。

如何使用 Selenium 通过文本查找元素

有关如何使用 Selenium 通过文本查找元素的分步指南。

重要提示:我们将在本教程中使用真实示例,因此你需要 图书馆和 浏览器驱动程序 安装。

步骤 1。 写下你的第一个 Selenium 脚本. 注意: 我们将使用 Python  以及  Chrome WebDriver。 你可以添加 Chrome 网络驱动程序 至 这个 途径. 步骤 2。 现在你需要导入 By 选择器模块。
				
					from selenium.webdriver.common.by import By
				
			
TIPS: 定位元素。 步骤 3。让我们尝试查找一本书的库存情况。我们将使用 books.toscrape.com 本例中的网站。现在,检查页面源代码。您可以在同一个元素中找到单词和可用书籍的数量:
selenium 通过文本查找元素
注意: 我们将使用 XPath的 选择器来定位元素,因为它有一个 文本() 方法内置。 TIP: 如果你需要复习一下,可以看看 XPath 备忘单 步骤 4。 然后使用这个选择器:
				
					//*[contains (text(),'stock')]
				
			

它会查找页面中的任何元素,其文本包含 库存 字符串。

				
					element_by_text = driver.find_element(By.XPATH, "//*[contains (text(),'stock')]").text

print (element_by_text)
				
			

注意: 我们正在使用 驱动程序.find_element() 函数仅获取选择器找到的第一个元素。也可以使用 驱动程序.find_elements() 函数获取所有元素的列表。

这是 脚本的输出。它显示您刚刚抓取的元素。

2 selenium_find_element_by_text_output

步骤 5。 现在我们可以从文本中提取数字来清理结果,并将其作为整数变量进行其他操作。您可以使用一些简单的正则表达式来做到这一点。 

在这里我们找到 元素按文本 字符串,将其分配给一个新变量并单独打印出来:

				
					in_stock = re.findall(r'\d+', element_by_text)[0]

print (f'In stock: {in_stock}')
				
			

这是 脚本的输出。它显示您刚刚抓取的书籍的库存情况。

selenium 根据文本输出查找元素2

结果: 

恭喜,您刚刚使用 Selenium 提取了一本书的库存情况。

				
					from selenium import webdriver
from selenium.webdriver.common.by import By
import re

driver = webdriver.Chrome()

driver.get("http://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html")

element_by_text = driver.find_element(By.XPATH, "//*[contains (text(),'stock')]").text
driver.quit()

print (element_by_text)

in_stock = re.findall(r'\d+', element_by_text)[0]
print (f'In stock: {in_stock}')
				
			

没有任何 块。

Web 抓取 API 研究缩略图