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浏览器,并打开指定网页,输入文本及点击按钮一系统操作)
相关推荐
:beach_with_umbrella: 看望我使用由Puppeteer和Node-Fetch支持的CLI可以更轻松地访问您的网页安装 $ npm i -g visit-me用法 $ visit-me -u [YOUR_WEB_URL]其他选项争论别名描述数据类型默认值--count -c 造访次数...
npm install puppeteer-chromium-resolver --save 用法 [异步]动态检测和下载Chrome ( async ( ) => { const PCR = require ( "puppeteer-chromium-resolver" ) ; const option = { revision : "" , ...
为了在电子内部运行puppeteer,我们使用puppeteer-core库,该库使用客户端计算机中安装的chrome实例。 Puppeteer在初始化。 该脚本正在检查默认的Chrome补丁。 根据应用运行所在的操作系统,此路径为: 对于...
对于无法检测到时区的IP,将使用标准的puppeteer-extra记录器引发警告。 安装 yarn add puppeteer-extra-plugin-timezone # or npm install puppeteer-extra-plugin-timezone 用法 首先,您必须告诉puppteer-extra...
您可以使用这个库通过 puppeteer 截取整页屏幕截图,而无需担心上述问题。 它在内部需要多个屏幕截图,然后合并它们。 安装 # Yarn yarn add puppeteer-full-page-screenshot # NPM npm install puppeteer-full-...
这个 `puppeteer-sharp-master` 压缩包包含了一个完整的 Puppeteer Sharp 项目源代码,适合 C# 开发者使用。Puppeteer Sharp 允许你自动化执行浏览器任务,如网页截图、页面导航、网络请求监控等,极大地增强了 .NET...
puppeteer爬虫,puppeteer-deep-master.zip npm run sf-juejin (推荐segmentfault的热门文章到掘金) npm run monitor (前端监控、报警) npm run es6 (爬取了阮一峰老师的《ES6标准入门》并打印PDF) npm run zhentaoo...
安装puppeteer-to-istanbul , npm i -D puppeteer-to-istanbul 。 在启用覆盖的情况下在puppeteer中运行代码: ( async ( ) => { const pti = require ( 'puppeteer-to-istanbul' ) const puppeteer = require...
使用`django_puppeteer_pdf`库,开发者可能能够轻松地将网页内容转换为高质量的PDF文档,这对于生成报告、收据或者用户自定义打印输出非常有用。在Django项目中,开发者可以将此库整合到视图函数或模板标签中,通过...
需要puppeteer-screenshot-tester库: const ScreenshotTester = require ( 'puppeteer-screenshot-tester' ) 初始化截图测试器 const tester = await ScreenshotTester ( ) 可选参数: const tester = await ...
【nimley-nodejs-puppeteer】是一个基于Node.js和Puppeteer库的项目,主要用于网页自动化和网页数据抓取。这个项目的核心是使用Puppeteer,这是一个由Chrome团队维护的库,它提供了一种高级API来通过DevTools协议...
人偶录像机 | | | | | Puppeteer录像机是一个简单的Puppeteer插件,可为浏览器中出现的每个... npm install --save-prod puppeteer-video-recorder 手动的 一旦安装了Puppeteer录像机,就可以在项目中使用它: const
git clone https://github.com/christopher-talke/node-express-puppeteer-pdf-example.gitcd node-expess-puppeteer-pdf-examplenpm icode . 要在开发中运行该应用程序,只需运行以下命令: np
$ npm install --save puppeteer-extra-plugin-angular API参考 提供带有Angular同步支持的木偶功能。 扩展: external:PuppeteerExtraPlugin 参数 类型 描述 选择 Object 选件 例 const puppeteer = require ( '...
标题 "Node.js-Nodejs的简化HTMLCSS->PDF生成器" 指向的是一个使用Node.js技术来将HTML和CSS内容转换为PDF文件的工具或库。在Node.js环境中,这种功能通常由第三方模块实现,例如`html-pdf`、`puppeteer`等。这些...
Axe-Puppeteer-Lambda-HTTP 一个AWS Lambda函数,可使用axe-puppeteer将axe-core用作HTTP服务。 用法示例: /?url=https://github.com部署方式我们使用进行部署。 npm install将更新package.json指定的软件包。 up ...
npm i [-g] puppeteer-screenshot-cli puppeteer-screenshot --url ' http://perdu.com ' --selector ' h1 ' --output ./perdu.jpg puppeteer-screenshot -u ' http://perdu.com ' -s ' body ' -o - > /tmp/perdu....
使用https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth/。 此存储库包含用于绕过一些供应商(Distil Networks,Adscore和Google IMA)进行的常见漫游器检测检查的...
当使用puppeteer抓取网站和Web应用程序时,您会发现一致地解析表并不是那么容易。该库为您提供了puppeteer和page context之间的抽象。 该库解决了以下问题: :sparkles:按列名解析。 :sparkles:遵守列的定义顺序。...