当前位置: 首页 > news >正文

基于QWebEngine实现无头浏览器

无头浏览器

无头浏览器(Headless Browser)是一种没有图形用户界面(GUI)的浏览器。它通过在内存中渲染页面,然后将结果发送回请求它的用户或程序来实现对网页的访问,而不会在屏幕上显示网页。这种方式使得无头浏览器不仅适用于网络爬虫和测试等自动化任务,而且还能够更安全地进行网页浏览,因为它不会在屏幕上显示您的活动。

常见的无头浏览器包括Chrome Headless、PhantomJS、Puppeteer等,常见的这些无头浏览器都属于互联网前后端开发相关的东西,与Qt技术栈相关的比较少。

在之前的文章中我们了解到,QWebEngine能够实现内嵌浏览器的功能,基于无头浏览器的原理介绍,QWebEngine能不能实现加载网页但不显示页面呢?

答案是,可以的。

基于QWebEnginePage实现无头浏览器

在之前的文章中我们有介绍到QWebEngine有两种实现方式,一个QWidget框架下的QWebEngineView,另一种是QML框架下的WebEngineView,其中QWebEngineView包含QWebEnginePage的功能,QWebEnginePage提供页面加载相关的功能,QWebEngineView用于page的显示,基于QWebEnginePage就可实现无头浏览器。

    auto page = new QWebEnginePage(this);page->setUrl(QUrl("https://www.qt.io/"));connect(page, &QWebEnginePage::loadFinished, this, [=](bool ok){qDebug() << __FUNCTION__ << "song" << "load is ok" << ok;});

使用QWebEnginePage加载页面,页面加载成功后就可以做一些操作,如网络截图、爬虫、数据采集等。

QWebEnginePage支持QWebEngine内嵌浏览器相关的功能,具体可查看相关接口

1、获取网页相关信息

2、注入javascript

3、打印pdf

更具体的应用需要自己去发掘了。

QML的WebEngineView没有像QWebEngineView把page的功能分开,所以WebEngineView不能实现无头浏览器的效果。

最后,需要注意的是,如果是在控制台程序中运行QWebEnginePage,main函数的应用程序类型必须是QApplication,使用QCoreApplication无法启动QWebEnginePage。

http://www.lryc.cn/news/159437.html

相关文章:

  • 编译Micropython固件For树莓派Raspberry Pi Pico
  • 基于googlenet网络的动物种类识别算法matlab仿真
  • 如何用Jmeter编写脚本压测?
  • SpingMVC之拦截器使用详解
  • motionface respeak新的aigc视频与音频对口型数字人
  • 【计算机网络】 静态库与动态库
  • web端调用本地摄像头麦克风+WebRTC腾讯云,实现直播功能
  • React笔记(八)Redux
  • 数据库 | 数据库概述、关系型数据库、非关系型数据库
  • 【备战csp-j】 csp常考题目详解(4)
  • linux中常见服务端安装
  • L1-058 6翻了(Python实现) 测试点全过
  • 初学Python记
  • 计算机竞赛 基于深度学习的目标检测算法
  • sentinel-core
  • 【美团3.18校招真题1】
  • Springboot 实践(14)spring config 配置与运用--手动刷新
  • MyBatisPlus枚举类最佳实践(非常典型和高效的枚举类写法)
  • uniapp分包 解决分多个包的问题
  • 美国封锁激励中国制造业数字化转型的崛起 | 百能云芯
  • 鼠标键盘自动化工具pyautogui
  • 0基础学习VR全景平台篇 第96篇:VR电子楼书
  • 【MySQL】数据库的约束
  • 改变金融贷款市场营销方式 ---- 运营商大数据精准获客
  • SpringBoot实现分页的四种方式
  • 远程工作面试:特殊情况下的面试技巧
  • element ui文件上传方法中需要传额外参数
  • 线程池|单例模式|STL、智能指针线程安全|读者写者问题
  • Linux的基本使用和Web程序部署(JavaEE初阶系列18)
  • EXCEL 中find,if and,if or