Puppeteer是谷歌官方出品的一个通过DevTools协议控制headless Chrome的Node库。可以通过Puppeteer的提供的api直接控制Chrome模拟大部分用户操作来进行UI Test或者作为爬虫访问页面来收集数据。
demo操作流程:
1.新建一个目录: mkdir pupdemo
2.进入到这个目录: cd pupdemo
3.初始化package.json, 运行命令:npm init (一路回车就好了)
4.安装Node依赖模块,运行命令:npm install --save-dev
5.新建index.js,源代码如下:
// 引入模块 const puppeteer = require('puppeteer'); // 异步执行代码 (async () => { // 运行一个带UI的chrome浏览器 const browser = await puppeteer.launch({headless: false}); // 新建一个标签页 const page = await browser.newPage(); // 打开网址 await page.goto('https://baidu.com'); // 在文本框('#kw': ID为kw的元素)中输入puppeteer, 然后等100毫秒 await page.type('#kw', 'puppeteer', {delay: 100}); // 点击按钮('#su': ID为su的元素) page.click('#su') // 等1s await page.waitFor(1000); // 执行一段脚本,用于返回页面的信息: width 宽, height 高, devicePixelRatio 这个可以百度 const dimensions = await page.evaluate(() => { return { width: document.documentElement.clientWidth, height: document.documentElement.clientHeight, deviceScaleFactor: window.devicePixelRatio }; }); // 在命令行控制台输出信息 console.log('Dimensions:', dimensions); // 再执行一段脚本,用于返回".result a" 选择器查到的元素文本中包含'Puppeteer的入门和实践'的内容(其中就是找出它的链接地址) const targetLink = await page.evaluate(() => { return [...document.querySelectorAll('.result a')].filter(item => { return item.innerText && item.innerText.includes('Puppeteer的入门和实践') }).toString() }); // 跳转这个链接地址 await page.goto(targetLink); // 等1s await page.waitFor(1000); // browser.close(); 这句代码会关闭窗口,为了体现效果先注释 })()
6.运行命令:node --harmony index.js (然后就可以看到会自动打一个chrome浏览器,并打开指定网页,输入文本及点击按钮一系统操作)
相关推荐
小前端从无到有实战系列 包含前一级数据库及爬虫包含前一级分离和服务端渲染vue,react,koa2,mongodb开发中... pc预览地址 mobile预览地址 【内有福利】可扫码 服务端koa2系列 移动端vue系列 ...笔记:
使用使用NodeJS的Puppeteer先决条件重击Python NPM 节点添加node_modules目录之前,需要在项目中初始化nodejs才能创建node_modules文件夹。 $ npm init输出范例Used GBs:26.33 GBs (15.0%)Remaining GBs:148.67 GBs...
使用NodeJS可以轻松生成PDF版本: npm install -g puppeteer-clipuppeteer print $infile.html $outfile.pdf本地开发服务器需要Python和livereload lib ./watch_and_serve.py笔记有用的表情符号:⚅ :warning: :...
2. **文本转图像**:将每个文本块转换为图像,可能借助了开源库如Puppeteer,它可以生成基于网页的高质量截图。 3. **动画框架**:使用如Anime.js之类的JavaScript动画库,来控制文字的入场、出场动画,以及音频的...
补充笔记右键单击扩展工具栏或网页上的SingleFile按钮,以打开上下文菜单。 它允许您保存: 当前标签选定的内容, 选定的帧。 您还可以一键处理多个选项卡并保存: 选定的标签取消固定的标签所有标签。 在上下文