📜  使用Python驱动无头 Chrome

📅  最后修改于: 2022-05-13 01:55:44.196000             🧑  作者: Mango

使用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()

输出:

如您所见,我们在终端中打印了网页标题。