所谓浏览器的无头模式headless,就是浏览器在运行时处于后台操作的模式,不会看到浏览器打开,也就不会干扰你手头的工作。对于自动化测试和网络爬虫都有很大的价值。

早期我们使用 phantomJS 浏览器来实现这种模式,随着 Chrome 和 Firefox 都加入了无头模式, Selenium 逐渐停止对 phantomJS 的支持。

Chrome 的 headless

Chrome 的无头模式,通过在打开浏览器前加入 --headless 参数配置即可实现。

from selenium import webdriver

from selenium.webdriver.chrome.options import Options # => 引入Chrome的配置

import time

# 配置

ch_options = Options()

ch_options.add_argument("--headless") # => 为Chrome配置无头模式

# 在启动浏览器时加入配置

driver = webdriver.Chrome(chrome_options=ch_options) # => 注意这里的参数

driver.get('http://baidu.com')

driver.find_element_by_id('kw').send_keys('测试')

driver.find_element_by_id('su').click()

time.sleep(2)

# 只有截图才能看到效果咯

driver.save_screenshot('./ch.png')

driver.quit()

Firefox 的 headless

Firefox 浏览器的无头模式配置与 Chrome 差不多,只是写法有差异。

from selenium.webdriver.firefox.options import Options # => 引入Firefox配置

from selenium import webdriver

import time

# 配置浏览器

ff_options = Options()

ff_options.headless = True # => 设置无头模式为 True

driver = webdriver.Firefox(firefox_options=ff_options) # => 注意这里的参数

driver.get('http://baidu.com')

driver.find_element_by_id('kw').send_keys('测试')

driver.find_element_by_id('su').click()

time.sleep(2)

# 截图看效果

driver.save_screenshot('./ff.png')

driver.quit()

感受一下吧!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐