📜  获取 href 链接 selenium python (1)

📅  最后修改于: 2023-12-03 15:11:50.349000             🧑  作者: Mango

获取 href 链接 selenium python

在web开发中,链接是非常重要的元素。而对于程序员来说,获取链接的过程也是非常常见的需求。在本篇文章中,我将介绍如何使用selenium和python来获取href链接。

安装Selenium

Selenium是一个自动化测试框架,最初的目的是为Web应用程序提供自动化测试支持。它支持各种浏览器,如Chrome、Firefox和Safari等。在此之前,您必须确保您已在您的系统中安装了Selenium,您可以使用以下命令来安装它。

!pip install selenium
打开网页

在获取链接之前,我们需要使用Selenium打开一个网页。这里我以百度首页为例。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")

在上面的代码中,我使用了Chrome浏览器,您可以选择其他浏览器,如果您在使用前还没有下载浏览器驱动程序,则需要下载并安装相应的驱动程序。

from selenium import webdriver

# 下载 chrome driver
!apt-get update
!apt install chromium-chromedriver

options = webdriver.ChromeOptions()
options.add_argument('--headless') # 无头模式
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--disable-gpu')
options.add_argument("start-maximized")
options.add_argument("disable-infobars")
options.add_argument("--disable-extensions")
options.add_experimental_option("useAutomationExtension", False)
options.add_argument("--proxy-server='direct://'")
options.add_argument("--proxy-bypass-list=*")
options.add_argument("--disable-notifications")
options.add_argument("--disable-logging")
options.add_argument("--disable-log-destination")
options.add_argument("--log-level=3")

driver = webdriver.Chrome('chromedriver', options=options)
driver.get("https://www.baidu.com/")
获取链接

在打开网页后,我们需要获取其中的链接元素,并获取其中的href链接。这可以通过Selenium的find_elements_by_tag_name方法完成。

links = driver.find_elements_by_tag_name("a")
for link in links:
    print(link.get_attribute("href"))

在上述代码中,我们找到了所有的<a>标签,并逐一循环遍历它们,使用get_attribute方法获取链接元素中的href属性。

完整代码
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")

links = driver.find_elements_by_tag_name("a")
for link in links:
    print(link.get_attribute("href"))

该程序将打开百度首页并输出所有链接的href属性。如果您希望将其保存在文本文件中,则可以使用以下代码。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")

links = driver.find_elements_by_tag_name("a")

with open('links.txt', 'w') as file:
    for link in links:
        file.write(link.get_attribute("href") + '\n')

driver.quit()

现在,您已经学会了如何使用Selenium和Python获取网页中的href链接!