Puppeteer 入门教程_第1页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、puppeteer 入门教程puppeteer 是一个node库,他提供了一组用来操纵chrome的api, 通俗来说就是一个 headless chrome扫瞄器 (固然你也可以配置成有ui的,默认是没有的)。既然是扫瞄器,那么我们手工可以在扫瞄器上做的事情 puppeteer 都能胜任, 另外,puppeteer 翻译成中文是木偶意思,所以听名字就知道,操纵起来很便利,你可以很便利的操纵她去实现:1) 生成网页截图或者 pdf2) 高级爬虫,可以爬取大量异步渲染内容的网页3) 模拟键盘输入、表单自动提交、登录网页等,实现 ui 自动化测试4) 捕捉站点的时光线,以便追踪你的网站,协助分析网

2、站性能问题假如你用过 phantomjs 的话,你会发觉她们有点类似,但puppeteer是chrome官方团队举行维护的,用俗话说就是有娘家的人,前景更好。查看 puppeteer 的官方 api 你会发觉满屏的 async, await 之类,这些都是 es7 的规范,所以你需要:nodejs 的版本不能低于 v7.6.0, 需要支持 async, await.需要最新的 chrome driver, 这个你在通过 npm 安装 puppeteer 的时候系统会自动下载的先开看看正式的入门的 demo上面这段代码就实现了网页截图,先也许解读一下上面几行代码:先通过 puppeteer.la

3、unch() 创建一个扫瞄器实例 browser 对象然后通过 browser 对象创建页面 page 对象然后 page.goto() 跳转到指定的页面调用 page.screenshot() 对页面举行截图关闭扫瞄器是不是觉得好容易? 反正我是觉得比 phantomjs 容易,至于跟 selenium-webdriver 比起来, 那更不用说了。下面就介绍一下 puppeteer 的常用的几个 api。用法 puppeteer.launch() 运行 puppeteer,它会 return 一个 promise,用法 then 办法猎取 browser 实例, 固然高版本的 的 nodej

4、s 已经支持 await 特性了,所以上面的例子用法 await 关键字,这一点需要特别解释一下,puppeteer 几乎全部的操作都是 异步的, 为了用法大量的 then 使得代码的可读性降低,本文全部 demo 代码都是用 async, await 方式实现。这个 也是 puppeteer 官方推举的写法。对 async/await 一脸懵逼的学生狠狠的戳这里options 参数详解参数名称参数类型参数解释ignorehttpserrorsboolean在哀求的过程中是否忽视 https 报错信息,默认为 falseheadlessboolean是否以无头的模式运行 chrome, 也就是

5、不显示 ui, 默认为 trueexecutablepathstring可执行文件的路劲,puppeteer 默认是用法它自带的 chrome webdriver, 假如你想指定一个自己的 webdriver 路径,可以通过这个参数设置slowmonumber使 puppeteer 操作减速,单位是毫秒。假如你想看看 puppeteer 的囫囵工作过程,这个参数将十分实用。argsarray(string)传递给 chrome 实例的其他参数,比如你可以用法–ash-host-window-bounds=1024x768 来设置扫瞄器窗口大小。更多参数参数列表可以参考这里h

6、andlesigintboolean是否允许通过进程信号控制 chrome 进程,也就是说是否可以用法 ctrl+c 关闭并退出扫瞄器。timeoutnumber等待 chrome 实例启动的最长时光。默认为30000(30秒)。假如传入 0 的话则不限制时光dumpioboolean是否将扫瞄器进程stdout和stderr导入到process.stdout和process.stderr中。默认为false。userdatadirstring设置用户数据名目,默认linux 是在 ——/.config 名目,window 默认在 c:usersuser

7、appdatalocalgooglechromeuser data, 其中 user 代表当前登录的用户名envobject指定对chromium可见的环境变量。默认为process.env。devtoolsboolean是否为每个选项卡自动打开devtools面板, 这个选项惟独当 headless 设置为 false 的时候有效当 puppeteer 衔接到一个 chrome 实例的时候就会创建一个 browser 对象,有以下两种方式:puppeteer.launch 和 puppeteer.connect.下面这个 demo 实现断开衔接之后重新衔接扫瞄器实例browser 对象 api办法名称返回值解释browser.close()promise关闭扫瞄器browser.disconnect()void断开扫瞄器衔接browser.newpage()promise(page)创建一个 page 实例browser.pages()promise(array(page)猎取全部打开的 page 实例browser.targets()array(target)猎取全部活动的 targetsbrows

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论