📜  没有浏览器的 selenium - Python (1)

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

没有浏览器的 Selenium - Python

当说到Selenium时,第一件事情通常会想到使用其自动化浏览器的功能。然而,有时候我们可能不希望使用浏览器,而是需要在不依赖浏览器的情况下使用Selenium来做一些事情。本文将介绍如何在Python中使用Selenium API,而不需要浏览器。

安装 Selenoid

Selenoid是Selenium的一种轻量级替代方案,它提供了一个基于浏览器的API,但不需要浏览器本身。 安装Selenoid的最快方法是使用docker。运行以下命令即可:

$ docker run -d --name selenoid -p 4444:4444 -v /var/run/docker.sock:/var/run/docker.sock aerokube/selenoid:latest-release
安装 Python Client

要使用Python编写代码来与Selenoid交互,我们需要安装Python客户端库。最简单的方法是使用pip安装:

$ pip install selenium
示例代码

现在,我们可以编写一些Python代码来与Selenoid交互。下面的示例演示了如何获取Google主页的标题:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

capabilities = DesiredCapabilities.CHROME.copy()
capabilities['goog:chromeOptions'] = {'args': ['--headless']}

driver = webdriver.Remote(
    command_executor='http://localhost:4444/wd/hub',
    desired_capabilities=capabilities)

driver.get('http://www.google.com')
print(driver.title)
driver.quit()

在这个示例中,我们将使用Chrome作为浏览器,但我们使用了“--headless”选项来禁用实际显示浏览器窗口。另外,我们使用Selenoid提供的API来连接Selenium服务器。在这个示例中,我们假设Selenoid运行在本地计算机上,端口号是4444。最后,我们使用Selenium API与Google互动,并打印网页标题。

总结

在本文中,我们介绍了如何在Python中使用Selenium API来进行Web爬虫、自动化测试等操作,而不需要实际运行浏览器。我们介绍了如何使用Selenoid来实现这个功能,并提供了一个Python代码示例。