Python 如何从Bootstrap选项卡中点击href链接
Bootstrap是一种流行的HTML、CSS、JavaScript框架,可以帮助我们开发响应式、首选移动设备的前端Web应用程序。它提供了表单、排版、导航、按钮等界面组件的设计模板。Python是操纵网页内容的最好语言。
选择Selenium库
如果我们需要使用Python进行链接点击,我们应该使用Selenium库。它是最受欢迎的开源自动化测试工具,允许我们自动化浏览器操作。
Selenium主要用于测试自动化Web应用程序,并可用于自动化重复任务和Web抓取等其他目的。它支持Python、Java、C和Ruby等编程语言。可以用于测试Google、Mozilla Fire Fox、Safari等各种Web浏览器。
需要遵循的步骤
以下是使用Selenium自动打开给定bootstrap选项卡中的href链接的步骤。
- 安装Selenium库:首先,在Python环境中安装Selenium库。以下是代码示例:
pip install Selenium
如果安装成功,我们将得到以下输出 –
Collecting Selenium
Downloading selenium-4.8.3-py3-none-any.whl (6.5 MB)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Installing collected packages: outcome, h11, exceptiongroup, async-generator, wsproto, trio, trio-websocket, Selenium
Successfully installed Selenium-4.8.3 async-generator-1.10 exceptiongroup-1.1.1 h11-0.14.0 outcome-1.2.0 trio-0.22.0 trio-websocket-0.10.2 wsproto-1.2.0
Note: you may need to restart the kernel to use updated packages.
- 导入web驱动程序 − 使用selenium包可以从Python自动进行与web浏览器的交互。支持多个浏览器/驱动程序(Firefox、Chrome、Internet Explorer)以及远程协议。
从Selenium库中导入 webdriver 包。
from selenium import webdriver
- 在这一步中,我们将链接网站的驱动程序与webdriver包
web_driver = webdriver.Chrome("D://Myspace/chromedriver.exe")
- 接下来,我们将使用webdriver包的 get() 函数打开href链接,将其指定为网站链接。
web_driver.get("https://www.Tutorialspoint.com/")
让我们将上述所有步骤结合起来,看看输出结果。
from selenium import webdriver
web_driver = webdriver.Chrome("D://Myspace/chromedriver.exe")
web_driver.get("https://www.Tutorialspoint.com/")
print("The website link opened")
输出
运行上述代码后,将打开指定的链接,以下是该代码的输出结果。
示例
以下是使用Python点击Bootstrap标签中href链接的另一个示例。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
url = "https://Tutorialspoint.com"
driver_path = "path/to/webdriver"
driver = webdriver.Chrome(driver_path)
driver.get(url)
tab_link = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, 'a[data-toggle="tab"][href="#tab-1"]'))
)
tab_link.click()
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "tab-1"))
)
link_url = driver.current_url
driver.get(link_url)
print(driver.page_source)
driver.quit()
输出
上述代码的输出结果如下所示。