如何使用 Selenium 查找所有 URL
有关如何使用 Selenium 查找所有 URL 的分步指南。
重要提示:我们将在本教程中使用真实示例,因此您需要安装 Selenium 库和浏览器驱动程序。
步骤 1。 写下你的第一个 Selenium 脚本.
注意: 我们将使用 Python
以及 Chrome WebDriver。 你可以添加 Chrome 网络驱动程序 至 这个 途径.
步骤 2。 现在你需要导入 By 选择器模块。
from selenium.webdriver.common.by import By
TIPS: 定位元素。
步骤 3。 我们将使用 books.toscrape.com 在这个例子中。 如果你只需要查找所有链接,选择全部 标签就足以让他们 HREF 属性。使用 来自.TAG_NAME 选择器:
link_elements = driver.find_elements(By.TAG_NAME, "a")
for link in link_elements:
print (link.get_attribute("href"))
注意: 在上面的代码中,我们获取所有元素 标签并遍历它们以打印出它们的 HREF 属性。
这是 脚本的输出。它显示您刚刚抓取的元素。
目前为止的完整代码:
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")
link_elements = driver.find_elements(By.TAG_NAME, "a")
for link in link_elements:
print (link.get_attribute("href"))
driver.quit()
使用 CSS 或 XPath 选择器查找链接
步骤 1。 我们将在示例中使用主页来获取我们可以在主页上找到的评论的 URL。
检查页面源代码。你可以看到所有这些链接都有一个共同点—— 评论/ 字符串存在于其 HREF 属性。这就是您需要选择的。
步骤 2。 你可以写下 的CSS 以及 XPath的 选择器如下:
elements_by_css = driver.find_elements(By.CSS_SELECTOR, "a[href*='reviews/']")
elements_by_xpath = driver.find_elements(By.XPATH, "//a[contains(@href,'reviews/')]")
注意: 他们俩都在寻找 文档中的标签带有一个 href 标签,其中包含 评论/ 子字符串。
步骤 3。 您可以添加几行代码来打印所有内容。整个脚本如下所示:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://proxyway.com")
elements_by_css = driver.find_elements(By.CSS_SELECTOR, "a[href*='reviews/']")
elements_by_xpath = driver.find_elements(By.XPATH, "//a[contains(@href,'reviews/')]")
print ("By CSS:")
for link in elements_by_css:
print (link.get_attribute("href"))
print ("By XPath:")
for link in elements_by_xpath:
print (link.get_attribute("href"))
driver.quit()
这是 脚本的输出。它显示您刚刚抓取的链接。
注意: 您可以看到两个选择器都返回相同的链接。创建新列表来存储唯一的在线链接后,可以轻松过滤掉一些重复项。