Puppeteer环境搭建的详细步骤

时间:2021-05-26

简介

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 截图
const puppeteer = require('puppeteer');(async () => {const browser = await (puppeteer.launch({// 若是手动下载的chromium需要指定chromium地址, 默认引用地址为 /项目目录/node_modules/puppeteer/.local-chromium/executablePath: '/Users/huqiyang/Documents/project/z/chromium/Chromium.app/Contents/MacOS/Chromium',//设置超时时间timeout: 15000,//如果是访问https页面 此属性会忽略https错误ignoreHTTPSErrors: true,// 打开开发者工具, 当此值为true时, headless总为falsedevtools: false,// 关闭headless模式, 会打开浏览器headless: false}));const page = await browser.newPage();await page.goto('https://ment-341631992

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章