如何使用 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"))
注意:在上面的代码中,我们获取所有带有<a>标签的元素,并遍历它们以打印出它们的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属性中包含reviews/字符串。这就是你需要选择的内容。
步骤 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 标签且包含reviews/子字符串的<a>标签。
步骤 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()
这是脚本的输出结果,显示了你刚刚抓取的链接。
注意:可以看到,两个选择器返回的链接相同。创建新列表来存储唯一的在线链接后,可以轻松过滤掉一些重复项。