一个比phantomjs更好的网页截图工具puppeteer

1 篇文章 0 订阅
1 篇文章 0 订阅

被phantomjs折磨几天的我最终还是选择了puppeteer

一、安装

最近的需求是需要截取网页上的图表,然后放到word里。所以第一个选择的是phantomjs,但是发现有一些图表是完全截取不了。截下来发现是一个透明的图,截了个寂寞。所以我选择换一个方式:使用puppeteer来实现。因为这是一个基于Nodejs来实现的东西,所以第一步是下载安装Nodejs。

Nodejs的安装

1、nodejs的官网:https://nodejs.org/en/ 下载对应的包,msi是安装包,zip是免安装压缩包,根据需求下载,我的是zip包。 在这里插入图片描述

2、下载好之后在node_modules同级的目录创建node_cache和node_global目录;
3、 设置环境变量:在Path添加分别添加
D:\Node\install
D:\Node\install\node_global
D:\Node\install\node_global\node_modules
4、(全局视情况而定,也可以不执行)执行两条命令:
npm config set prefix"D:\Node\install\node_global"
npm config set cache"D:\Node\install\node_cache"
在nodejs的安装目录中找到node_modules\npm.npmrc文件,修改如下:
prefix = D:\Node\install\node_global
cache = D:\Node\install\node_cache
5、分别在安装目录下和其他随便一个地方打开cmd验证是否安装成功,输入命令:node -v 和 npm -v 会出现版本号,表示安装成功。
在这里插入图片描述

puppeteer的安装

安装好Nodejs之后就直接运行命令:npm install puppeteer 如果要安装全局的就得 npm install puppeteer -g 接下来就是等待了,时间有点长。如果太久或者安装失败,可自行映射taobao镜像再安装。
在这里插入图片描述

正文

1、创建一个Text.js内容如下:
注意:这里如果使用require(‘puppeteer’)报错 Error: Cannot find module ‘puppeteer’ 可以用绝对路径来解决,或者全局的时候出了问题,自行调试。

// const puppeteer = require('puppeteer'); // 全局
const puppeteer = require('D:/Node/install/node_global/node_modules/puppeteer'); // 绝对路径
(async () => {
    const browser = await puppeteer.launch();
const page = await browser.newPage();
// 设置透明
page._emulationManager._client.send(
            'Emulation.setDefaultBackgroundColorOverride',
            { color: { r: 0, g: 0, b: 0, a: 0 } }
        );
// 访问路径
await page.goto('localhost:8080/home/index.html');
// 获取指定id下的模块
let img = await page.$('#img');
await qxqk_echart.screenshot({
        path: 'img.png'
    });
await browser.close();
})();

2、执行命令 node Text.js
在这里插入图片描述
3、得到结果
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值