无头浏览器是什么它有什么用

无头浏览器是什么它有什么用,第1张

什么是无头浏览器 平时我们上网查阅信息、观看视频等活动,一般都是通过浏览器完成的,IE、chrome、火狐等都是我们经常使用的浏览器,它们都拥有非常好用的可视化 *** 作界面,配合鼠标就可以进行网上活动。

而无头浏览器也叫做无界面浏览器,它可以运行在服务器端,也具有普通浏览器的能力,只是它没有界面,

常见的框架有Puppeteer、Phantomjs等

无头浏览器的特点

1、使用方式

我们以Phantomjs为例,既可以以cli方式使用,也可以在代码中require进去,它甚至可以提供一个类似于node那样的REPL环境。

2、加载网络资源

既然是浏览器,加载网络资源显然是其基本的能力,resourceReceived和resourceRequested这两个回调函数可以监控加载的资源,利用它们就可以做一些网络监控。既然能获取网页的内容,那么就可以用来做爬虫

3、截图

既然是无界面的,那如果我们想看加载的页面是什么样子的,怎么办?它提供了截图功能,使用render方法就可以生成页面快照,还提供了设置网页大小等功能。

4、插入外部资源

它可以向页面中插入外部资源,比如插入一个js,这一点上比较像chrome插件。

5、生成自定义网页

它既能获取人家的网页,同时也能生成自己的网页,设置content属性就行。

6、提供document和window对象

在服务器中是不存在document和window对象的,但是Phantomjs提供了这两个变量。

7、 *** 作页面

既然Phantomjs提供了document和window这两大对象,那么我们就可以像在普通浏览器里面一样使用它们的方法,比如 *** 作dom元素、发送dom事件等。

8、测试

Phantomjs本身并不是测试框架,但是它可以配合jasmine等测试框架进行自动化测试。

无头就是headless 的中文,所谓无头浏览器就是没有用户界面的浏览器。

它可以运行在服务器端,通过命令行的方式调用,比如需要截取任意网站的截图,网址由用户输入,那就需要在服务器端装一个headless浏览器,可以命令调用来截图。

除了截图,还能 *** 作DOM,做一些爬虫的事情,在服务器端完成自动化 *** 作。

常用的有三个:Selenium,PhantomJS,Chrome-headless 。

使用举例:

这样就实现了截取百度这个网站的页面。

更复杂的 *** 作就要看手册了

1 先使用如下方式抓取页面内容

URL url = new URL(">

$(window)on("load",function(){

//页面属性,,内容完全加载完,执行

}

$(document)ready(function() {

//页面DOM结构加载完执行

}

gitee码云项目地址

开始

进入一个新的项目目录,命令模式进入项目目录

然后一直回车,内容可不填。

修改 packagejson 文件为下面的内容:

安装依赖

在项目根目录下创建indexjs文件

运行

等待几秒后,如果在项目目录下生成,说明成功了。

gitee码云项目地址

背景

在表单(web页面)测试过程中,要经常对表单基本功能进行回归,曾经考虑过使用webUI自动化工具,减少重复性的 *** 作,但是因为之前用过appium,对UI自动化的体验不是很好,所以有些纠结,但是,再仔细想一下,有可能存在比较好用又确实能提升效率的工具,也不妨去尝试一下。

上网查询了一下,puppeteer具有可以使用录制脚本的工具puppeteer-recorder、截图等功能,找了个demo开始试了一下,发现坑较少,安装方便,使用比较流畅。

puppeteer介绍

Puppeteer 是一个Node库, 它提供高级API,通过DevTools Protocol 来控制Chrome 或 Chromium。 Puppeteer 默认运行为headless ,但是可以配置为运行为non-headless。详见文末参考链接。

效果展示

目录结构

cases:用例脚本

config:配置文件,可区分测试、线上环境

screenshot_outputs:输出的截图文件

utils:用到的通用方法

测试思路

1、在脚本中写入测试执行步骤

2、运行脚本

3、查看执行结果(截图),查看是否符合预期。

这样 *** 作会使简单很测试很多。就拿表单人工审核为例,全部人工 *** 作的话,需要填写并提交表单,登录表单运营后台,找到对应的目录及表单,对表单进行审核,再重新打开表单并进行查看,而自动化的话,在写好脚本(在脚本中可进行接口请求)之后,就可以直接运行脚本,查看结果。

环境搭建

1、安装puppeteer:npm install puppeteer(前提是安装了node、npm)

2、安装chrome插件puppeteer-recorder(可自行百度,比较简单)

3、npm init,初始化一个项目

脚本编写

遇到问题

1、puppeteer-recorder只能录制获取元素、点击元素 *** 作,没有获取到填写文本的 *** 作,需要修改或添加已录制好的脚本

2、有些地方例如截图前,接口请求结束后,需要使用等待方法。await pagewaitFor(3000)

3、使用await进行接口请求,不然会出现同步异步问题,后面的语句开始执行(但是要用到的参数还没有获取到)

参考:

>

这个的话你要知道什么是爬虫啊,

爬虫就是获取一个网站的 html 页面,

然后获取里面的元素,获取对应的链接的那个元素,就得到 src 链接,就获取到商品网址了,额

建议先去了解爬虫的基本知识,然后选择一个会的语言去尝试一个相对简单的爬虫 demo

可以看看我的百度经验:nodejs 爬虫-Puppeteer 包的使用,以后更多的文章可以看看

谷歌浏览器在17年自行开发了Chrome Headless特性,并与之同时推出了puppeteer,可以理解成我们日常使用的Chrome的无界面版本以及对其进行 *** 控的js接口套装

借助puppeteer,我们可以对页面进行爬取,更加灵活

然而在本地运行没问题情况下,放置阿里云服务器上面运行是却不能运行,一顿百度 *** 作后发现已经有类似的问题解决方案,记录下以备后期回忆

方案

然后正常运营就可以了

puppeteer: >

以上就是关于无头浏览器是什么它有什么用全部的内容,包括:无头浏览器是什么它有什么用、Java爬虫 动态页面、nodejs puppeteer打开一个页面后,在点击跳转到另一个页面 怎么判断这么页面是否所有的元素都已加载完成等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/9628535.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存