简介
Puppeteer是Google开发并开源的一款工具,可用代码驱动浏览器操作。
由于诸多优秀的特性,Puppeteer常被用在爬虫与自动化测试上。详细介绍参见官方 README 。
Puppeteer本身是个NodeJS的库,自动化脚本也需要使用NodeJS编写,如果对JS不了解建议先学习JavaScript基础语法,或者使用Selenium等其他工具去实现。
对于一个陌生的工具,应当先检查是否适合自己,再去尝试使用,切莫盲目从众。
Puppeteer 用处
- 利用网页生成PDF、图片
- 爬取SPA应用,并生成预渲染内容(即“SSR” 服务端渲染)
- 可以从网站抓取内容
- 自动化表单提交、UI测试、键盘输入等
- 帮你创建一个最新的自动化测试环境(chrome),可以直接在此运行测试用例6.捕获站点的时间线,以便追踪你的网站,帮助分析网站性能问题
配置
Node环境配置
下载并安装NodeJS:
wget https://nodejs.org/dist/v8.12.0/node-v8.12.0-linux-x64.tar.xztar xf node-v8.12.0-linux-x64.tar.xzmv node-v8.12.0-linux-x64 /usr/local/libln -s /usr/local/lib/node-v8.12.0-linux-x64/bin/npm /usr/local/bin/ln -s /usr/local/lib/node-v8.12.0-linux-x64/bin/node /usr/local/bin/*(可选)配置淘宝的源,加速npm包的下载:
npm config set registry https://registry.npm.taobao.org安装Puppeteer
配置淘宝的Puppeteer下载源,用于安装Chromium:
export PUPPETEER_DOWNLOAD_HOST=https://storage.googleapis.com.cnpmjs.orgnpm i puppeteer国内不配置时会在卡在下载Chromium
示例
新建一个test.js
const puppeteer = require('puppeteer');(async () => { const browser = await puppeteer.launch({ ignoreHTTPSErrors: true, headless: false, args: ['--no-sandbox'] }); const page = await browser.newPage(); await page.goto('https://intest.tech'); await page.waitFor(5e3); await browser.close();})();运行:
node test.js截图
知识点
- puppeteer.launch 启动浏览器实例
- browser.newPage() 创建一个新页面
- page.goto 进入指定网页
- page.screenshot 截图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。