文档章节

开源Nodejs项目推荐:抓取网站截图

i5ting
 i5ting
发布于 2016/04/19 10:09
字数 350
阅读 2124
收藏 68

抓取网站截图

很多网页特别长,直接的电脑截图非常麻烦,用ps等工具也非常麻烦,所以很多人都问我有木有自动抓出截图的软件

Node.js里是有的

推荐pageres

首先全局安装

$ PHANTOMJS_CDNURL=https://npm.taobao.org/dist/phantomjs npm install phantomjs --registry=https://registry.npm.taobao.org --no-proxy
$ npm install --global pageres-cli

执行

screenshot.png

效果如下

screenshot-output.png

说明:此模块依赖PhantomJS,请备好梯子或者用文中的国内镜像

嵌入代码中

通过shell是可以做,这是给其他语言调用的,对于Node.js,你可以使用对应模块就好了

https://github.com/sindresorhus/pageres

$ npm install --save pageres

PhantomJS, which is used for generating the screenshots, is installed automagically, but in some rare cases it might fail to and you'll get an Error: spawn EACCES error. Download PhantomJS manually and reinstall pageres if that happens.

用法

const Pageres = require('pageres');

const pageres = new Pageres({delay: 2})
    .src('yeoman.io', ['480x320', '1024x768', 'iphone 5s'], {crop: true})
    .src('todomvc.com', ['1280x1024', '1920x1080'])
    .dest(__dirname)
    .run()
    .then(() => console.log('done'));

原理

其实就是利用无头浏览器PhantomJS来实现的截图

剩下的就自己玩去吧

全文完

欢迎关注我的公众号【node全栈】

node全栈.png

© 著作权归作者所有

共有 人打赏支持
i5ting
粉丝 191
博文 68
码字总数 98509
作品 3
东城
私信 提问
加载中

评论(7)

xiashulin
xiashulin
做什么业务需要这样去自动截图
吐槽的达达仔
吐槽的达达仔

引用来自“i5ting”的评论

引用来自“吐槽的达达仔”的评论

引用来自“i5ting”的评论

引用来自“吐槽的达达仔”的评论

有没有玩过nightmarejs的??

貌似这东西已经3年没更新了

。。。这github上面挺活跃的啊

你把链接发我一下,是不是我看的不对啊?

https://github.com/segmentio/nightmare
encro
encro
直接用restify写一个服务调用phantomjs作截图,提供给第三方.大概20行代码,确实很爽
i5ting
i5ting

引用来自“吐槽的达达仔”的评论

引用来自“i5ting”的评论

引用来自“吐槽的达达仔”的评论

有没有玩过nightmarejs的??

貌似这东西已经3年没更新了

。。。这github上面挺活跃的啊

你把链接发我一下,是不是我看的不对啊?
吐槽的达达仔
吐槽的达达仔

引用来自“i5ting”的评论

引用来自“吐槽的达达仔”的评论

有没有玩过nightmarejs的??

貌似这东西已经3年没更新了

。。。这github上面挺活跃的啊
i5ting
i5ting

引用来自“吐槽的达达仔”的评论

有没有玩过nightmarejs的??

貌似这东西已经3年没更新了
吐槽的达达仔
吐槽的达达仔
有没有玩过nightmarejs的??
【Cloud Foundry 应用开发大赛】“17轻松”文章采集应用

应用名称:17轻松 应用URL地址:http://17qingsong.cloudfoundry.com/ 已经开源,GitHub: https://github.com/xieren58/17qingsong 应用说明及使用场景: 17轻松是一个全自动定时采集网易手机...

czchen
2012/12/18
0
42
实例:使用puppeteer headless方式抓取JS网页

google chrome团队出品的puppeteer 是依赖nodejs和chromium的自动化测试库,它的最大优点就是可以处理网页中的动态内容,如JavaScript,能够更好的模拟用户。 有些网站的反爬虫手段是将部分内...

caiyongji
05/09
0
0
基于Node.js实现一个小小的爬虫

基于Node.js实现一个小小的爬虫 以前一直听说有爬虫这种东西,稍微看了看资料,貌似不是太复杂。 正好了解过node.js,那就基于它来个简单的爬虫。 1.本次爬虫目标: 从拉钩招聘网站中找出“前...

蜗牛奔跑
2017/10/18
0
0
OSChina 技术周刊第二十三期 —— 每周技术精粹

每周技术抢先看,总有你想要的! 移动开发 【软件】Android 调试工具 Stetho 前端开发 【翻译】25 个超棒的 HTML5 & JavaScript 游戏引擎开发库 【翻译】什么时候 AngularJS 会超越 jQuery 【...

OSC编辑部
2015/03/02
0
0
用electron开发Mark Down编辑器(一) ——功能简介

引子(废话) 从使用github托管个人静态博客开始,了解到了MarkDown,不得说这个标记行语言确实让人非常着迷。 我又是一个爱折腾的人,电脑系统经常换,每次重新搭建Hexo,感觉特别麻烦,每次...

newbiebt
2016/11/25
114
5

没有更多内容

加载失败,请刷新页面

加载更多

Caffe(二)-Python-自定义网络

这里我们用一个例子先来体验一下 首先定义一下我们的环境变量 $PYTHONPATH,我这儿是Windows开发环境,至于Windows Caffe怎么编译由读者自己下去搞定 我使用的控制台是 Windows PowerShell 添...

Pulsar-V
43分钟前
4
0
ActiveMQ从入门到精通(二)之可靠性机制

ActiveMQ的可靠性机制 缘由( 确认JMS消息) 只要消息被确认之后,才认为消息被成功消费了。消息的成功消费包括三个阶段:客户端接收消息、客户端处理消息以及客户端确认消息。在事务性会话中...

一看就喷亏的小猿
50分钟前
3
0
源码分析 Mybatis 的 foreach 为什么会出现性能问题

背景 最近在做一个类似于综合报表之类的东西,需要查询所有的记录(数据库记录有限制),大概有1W条记录,该报表需要三个表的数据,也就是根据这 1W 个 ID 去执行查询三次数据库,其中,有一...

TSMYK
今天
8
0
IC-CAD Methodology企业实战之openlava

在云计算解决安全问题并成为IC界主流运算平台之前,私有的服务器集群系统仍然是各大IC公司的计算资源平台首选。 现在主流的服务器集群管理系统包括lsf,openlava,SkyForm,三者都属于lsf一系...

李艳青1987
今天
8
0
http response stream 字节流 接收与解码

在接收图片、音频、视频的时候,需要用到二进制流。 浏览器会发给客户端 字节Byte流,一串串的发过来_int8格式 -128~127(十进制),也就是8bit(位)。 客户端接收的时候,对接收到的字节收集,...

大灰狼wow
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部