使用Python驱动无头 Chrome
在本文中,我们将了解如何使用Python驱动 headless chrome。 Headless Chrome 只是普通的 Chrome,但没有用户界面 (UI)。我们需要 Chrome 是无头的,因为 UI 需要 CPU 和 RAM 开销。
为此,我们将使用ChromeDriver,它是一个 Web 服务器,为我们提供了一种与 Headless Chrome 交互的方式。还有Selenium ,它是一个框架,它为我们提供了一组与 ChromeDriver 交互的功能。因此,我们可以编写将在浏览器中执行的所需操作。
我们使用Selenium中的函数编写代码。这些函数与ChromeDriver交互。 ChromeDriver 告诉Headless Chrome做什么。
示例 1:chrome 自动化的基本示例
在这里,我们将看到如何使用selenium自动化 chrome。
使用的函数:
- webdriver.Chrome():向我们返回一个 Chrome 驱动程序的实例,我们将通过它与 Chrome 浏览器进行交互。
- driver.get(url):向浏览器发送信号以获取指定的 URL。
- driver.close():向浏览器发送信号以关闭自身。
- time.sleep(n):其中 n 是一个整数。将在指定的秒数内暂停脚本执行。我们需要它给我们时间来查看浏览器确实在运行。
Python3
import time
from selenium import webdriver
# initializing webdriver for Chrome
driver = webdriver.Chrome()
# getting GeekForGeeks webpage
driver.get('https://www.geeksforgeeks.org')
# sleep for 5 seconds just to see that
# the browser was opened indeed
time.sleep(5)
# closing browser
driver.close()
Python3
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# instance of Options class allows
# us to configure Headless Chrome
options = Options()
# this parameter tells Chrome that
# it should be run without UI (Headless)
options.headless = True
# initializing webdriver for Chrome with our options
driver = webdriver.Chrome(options=options)
# getting GeekForGeeks webpage
driver.get('https://www.geeksforgeeks.org')
# We can also get some information
# about page in browser.
# So let's output webpage title into
# terminal to be sure that the browser
# is actually running.
print(driver.title)
# close browser after our manipulations
driver.close()
示例 2:驱动无头 Chrome
在这里,我们将使用无头浏览器自动化浏览器,因为我们将使用此函数:
- webdriver.Chrome():向我们返回一个 Chrome 驱动程序的实例,我们将通过它与 Chrome 浏览器进行交互。
- Options():通过这个类的属性我们可以发送浏览器启动参数。在我们的例子中, options.headless = True将启动没有 UI(无头)的浏览器。
- driver.get(url):向浏览器发送信号以获取指定的 URL。
- print(driver.title):将网页标题打印到我们运行脚本的终端中。
- driver.close():向浏览器发送信号以关闭自身。
Python3
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# instance of Options class allows
# us to configure Headless Chrome
options = Options()
# this parameter tells Chrome that
# it should be run without UI (Headless)
options.headless = True
# initializing webdriver for Chrome with our options
driver = webdriver.Chrome(options=options)
# getting GeekForGeeks webpage
driver.get('https://www.geeksforgeeks.org')
# We can also get some information
# about page in browser.
# So let's output webpage title into
# terminal to be sure that the browser
# is actually running.
print(driver.title)
# close browser after our manipulations
driver.close()
输出:
如您所见,我们在终端中打印了网页标题。