一、无头浏览器介绍
无头浏览器(Headless Browser)是一种没有图形用户界面(GUI)的网络浏览器,它可以在后台运行并执行网页操作,而不需要打开一个可见的浏览器窗口。无头浏览器可以模拟用户在浏览器中执行的各种操作,例如加载网页、点击链接、填写表单等,但所有这些操作都在不可见的情况下进行。
简单来说,无头浏览器,也是通过selenium操作浏览器,但是浏览器不弹出来的意思
二、无头浏览器的优缺点
无头浏览器的主要优势包括:
-
更快速和节省资源:由于无头浏览器不需要渲染页面或显示图形界面,因此通常比常规浏览器更快速,并且消耗更少的系统资源。
-
适用于自动化测试和网络爬虫:无头浏览器非常适合用于自动化测试,例如自动化测试工具可以在无头浏览器中运行测试用例。此外,网络爬虫和数据挖掘工具也经常使用无头浏览器来获取网页数据。
-
可在服务器环境中运行:由于无头浏览器不需要图形用户界面,因此可以轻松地在服务器环境中运行,例如在云服务器上执行自动化任务。
但是,它也有它的缺点:
-
不能完全模拟真实的用户行为
-
不便于调试(各个浏览器的开发者工具)
三、主要应用场景
一些常见的无头浏览器包括
- Google Chrome的无头模式(Headless Chrome),Chrome从59版本开始支持
- Mozilla Firefox的无头模式(Headless Firefox),Firefox从56版本开始支持
- 以及PhantomJS,使用JavaScript编写的无头浏览器,能够支持Windows, macOS, Linux
- Splash,使用Python编写的无头浏览器,使用WebKit作为引擎
- HtmlUnit,使用Java编写的无头浏览器,使用Rhino engine作为引擎
这些无头浏览器在自动化测试、网页截图、数据采集等场景中,无头浏览器通常是一种非常有用的工具。
四、selenium框架中无头浏览器的使用
- 我们写的是爬虫程序. 目的是数据. 并不是想看网页.
- 那能不能让浏览器在后台跑呢?
- 答案是可以的
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 创建 ChromeOptions 实例
chrome_options = Options()
# 配置 ChromeOptions 的参数
# 指定浏览器分辨率
chrome_options.add_argument('window-size=1920x3000')
# 规避 bug,需要加上这个属性
chrome_options.add_argument('--disable-gpu')
# 隐藏滚动条,应对特殊页面
chrome_options.add_argument('--hide-scrollbars')
chrome_options.add_argument('blink-settings=imagesEnabled=false')
# 不加载图片,提升速度
chrome_options.add_argument('--headless')
# 无头模式,不提供可视化页面。在 Linux 下,如果系统不支持可视化,不加这条会启动失败
# chrome_options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
# 手动指定
# 创建 Chrome WebDriver 实例,并传入配置参数
driver = webdriver.Chrome(options=chrome_options)
driver.get('https://www.baidu.com') # 打开百度首页
# 在页面源代码中查找关键词 'hao123' 并打印结果
print('hao123' in driver.page_source)
# True
driver.close() # 关闭浏览器窗口,释放资源
标签:浏览器,chrome,selenium,Chrome,无头,options
From: https://www.cnblogs.com/xiao01/p/18116247