首页 > 其他分享 >selenium框架之无头浏览器

selenium框架之无头浏览器

时间:2024-04-05 21:46:55浏览次数:12  
标签:浏览器 chrome selenium Chrome 无头 options

一、无头浏览器介绍

无头浏览器(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

相关文章

  • 浏览器中localStroage、sessionStorage、cookie的区别与使用
    特性localStoragesessionStorageCookieSession存储位置浏览器本地浏览器本地浏览器本地服务器数据传输不自动发送不自动发送自动发送ID自动发送存储类型键值对键值对文本多种类型(任意)存储大小通常约5MB通常约5MB通常≤4KB无硬性限制生命周期持久化存储关闭窗口/标签页后清除可......
  • selenium框架之浏览器页面操作
    一、页面操作首先,前期我们将Chrome驱动添加到环境变量了,所以我们可以直接初始化界面。fromseleniumimportwebdriver#初始化浏览器为chrome浏览器driver=webdriver.Chrome().........#关闭浏览器driver.close()Selenium是一个用于自动化浏览器操作的工具,可以用于......
  • selenium框架之介绍与安装
    一、selenium的介绍Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium可以直接运行在浏览器上,它支持所有主流的浏览器。因为Selenium可以控制浏览器发送请求,并获取网页数据,因此可以应用于爬虫领域。Selenium可以根据我们的指令,让浏览器自动加载页面,......
  • 12、selenium框架之Cookie操作
    一、查看浏览器cookiecookie、session、token的区别:cookie存储在浏览器本地客户端,发送的请求携带cookie时可以实现登录操作。session存放在服务器。token应用于应用程序。F12查看浏览器cookie:二、cookie基本操作1、获取cookie:fromseleniumimportwebdriverfromsele......
  • selenium框架之动作链
    Selenium框架中的动作链(ActionChains)是一种用于执行复杂用户交互操作的方法。通过使用动作链,可以模拟鼠标操作、键盘操作和其他复杂的用户交互行为。这对于处理拖放、鼠标悬停、键盘按键组合等操作非常有用。比如:对于输入框,我们就调用它的输入文字和清空文字方法;对于按钮,就调......
  • webkit浏览器内核编译
    文章目录一、什么是WebKit?二、安装choco管理器和依赖1.安装choco管理器2.安装依赖三、配置环境变量四、开始编译五、运行六、成品展示一、什么是WebKit?WebKit是一个开源的浏览器引擎,与之相对应的引擎有Gecko(MozillaFirefox等使用),Trident(也称MSHTML,IE使用)和EdgeH......
  • (谷歌浏览器)如何在vscode中搭建vue.js devtools的环境
    搭建过程中明明所有操作步骤都做了,却还是出现下面这种情况: 以下是正确的搭建操作步骤:根据一下图片在vscode中创建文件夹;将以下代码写入; <scripttype="text/javascript"src="../js/vue.js"></script>接下来就是我们需要点击https://vuejs.zcopy.site/,进入到网站后,......
  • 《手把手教你》系列技巧篇(六十九)-java+ selenium自动化测试 - 读取csv文件(详细教程)
    1.简介 在实际测试中,我们不仅需要读取Excle,而且有时候还需要读取CSV类的文件。如何去读取CSV的文件,宏哥今天就讲解和分享一下,希望对你能够有所帮助。前面介绍了如何读取excel文件,本篇介绍如何读取vsc文件,同样需要用到第三方lib去处理读取csv文件的数据。2.什么是CSV?csv是【......
  • 《手把手教你》系列技巧篇(七十)-java+ selenium自动化测试-Java中如何读取properties配
     1.简介Java自动化测试开发中,需要将一些易变的配置参数放置再XML配置文件或者properties配置文件中。然而XML配置文件需要通过DOM或SAX方式解析,而读取properties配置文件就比较容易。因此今天宏哥讲解和分享如何读取properties配置文件的内容。2.properties文件......
  • WebKit:探索现代Web浏览器的核心引擎
    在当今数字时代,Web浏览器已经成为我们日常生活不可或缺的工具。无论是在桌面电脑、笔记本电脑还是移动设备上,浏览器都为我们提供了一个通向互联网世界的大门。然而,很少有人真正了解浏览器背后的核心技术——渲染引擎。WebKit就是其中一个广为人知的开源渲染引擎,它为许多流......