位置: 编程技术 - 正文

NodeJS的url截取模块url-extract的使用实例(nodejs截图)

编辑:rootadmin

上次介绍了怎么利用NodeJS + PhantomJS进行截图,但由于对每次截图操作,都启用了一个PhantomJS进程,所以并发量上去后,效率堪忧,所以我们重写了所有代码,并将其独立成为一个模块,方便调用。如何改进?控制线程数,以及单线程处理url数量。使用Standard Output & WebSocket 进行通讯。添加缓存机制,目前使用Javascript Object进行。对外提供简易的接口。 设计图

依赖 & 安装

由于PhantomJS 1.9.0+才开始支持Websocket,所以我们先要确定在PATH中的PhantomJS是为1.9.0以上版本。在命令行键入:

$ phantomjs -v

如果能返回版本号1.9.x,则可以继续操作。如果版本过低,或者出现错误,请到PhantomJS官网下载最新版本。

如果你已经安装了Git,或者拥有Git Shell,那么在命令行键入:$ npm install url-extract

进行安装。一个简单的例子 比如我们要截取百度首页,那么可以这样:

下面是打印:

其中,image属性就是截图相对于工作路径的地址。我们可以使用Job的getData接口来得到更清楚的数据,例如:

打印就变成了这样了:

image表示截图相对于工作路径的地址,status表示状态是否正常,true代表正常,false代表截图失败。

更多例子请参见:

主要API

.snapshot

url快照

.snapshot(url, [callback]).snapshot(urls, [callback]).snapshot(url, [option]).snapshot(urls, [option])

.extract

url信息抓取,并获取快照

.extract(url, [callback]).extract(urls, [callback]).extract(url, [option]).extract(urls, [option])

url {String} 要截取的地址

urls {Array} 要截取的地址数组

callback {Function} 回调函数

option {Object} 可选参数

┝ id {String} 自定义url的id,如果第一个参数是urls,此参数无效

┝ image {String} 自定义截图的保存地址,如果第一个参数是urls,此参数无效

┝ groupId {String} 定义一组url的groupId,用于返回时候辨认是哪一组url

┝ ignoreCache {Boolean} 是否忽略缓存

┗ callback {Function} 回调函数

Job(类)

每一个url对应一个job对象,url的相关信息由job对象存储。

Field

url {String} 链接地址content {Boolean} 是否抓取页面的title和description信息id {String} job的idgroupId {String} 一堆job的组idcache {Boolean} 是否开启缓存callback {Function} 回调函数image {String} 图片地址status {Boolean} job当前是否正常

Prototype

getData() 获取job的相关数据

全局配置

url-extract根目录中的config文件可以进行全局配置,默认如下:

module.exports = { wsPort: , maxJob: , maxQueueJob: , cache: 'object', maxCache: , workerNum: 0};wsPort {Number} websocket占用的端口地址maxJob {Number} 每个PhantomJS线程可并发worker数maxQueueJob {Number} 最大等待工作数量,0表示不限制,超过该数量,任何工作都直接返回失败(即status = false)cache {String} 缓存实现,目前只有object实现maxCache {Number} 最大缓存链接数workerNum {Number} PhantomJS线程数,0表示和CPU数量相同

一个简单的服务例子

npm install

如果你下载了网盘的文件,那么请安装connect:

$ npm install connect

然后键入:

$ node bin/server

打开:

;

推荐整理分享NodeJS的url截取模块url-extract的使用实例(nodejs截图),希望有所帮助,仅作参考,欢迎阅读内容。

NodeJS的url截取模块url-extract的使用实例(nodejs截图)

文章相关热门搜索词:node获取url参数,nodejs 解析html,node url,nodejs url,nodejs url.parse,nodejs url.parse,nodejs url,nodejs url,内容如对您有帮助,希望把文章链接给更多的朋友!

ExtJS自定义主题(theme)样式详解 本文基于ExtJS4.2.1版本UI组件基础学习ExtJS就是学习组件的使用。ExtJS4对框架进行了重构,其中最重要的就是形成了一个结构及层次分明的组件体系,由这

深入领悟JavaScript中的面向对象 JavaScript是面向对象的。但是不少人对这一点理解得并不全面。在JavaScript中,对象分为两种。一种可以称为普通对象,就是我们所普遍理解的那些:数字

YUI模块开发原理详解 随着互联网应用越来越重,js代码越来越庞大,如何有效的去组织自己的代码,变得非常重要。我们应该学会去控制自己的代码,而不是到最后一堆bug

标签: nodejs截图

本文链接地址:https://www.jiuchutong.com/biancheng/373654.html 转载请保留说明!

上一篇:NodeJS url验证(url-valid)的使用方法(node urlencode)

下一篇:ExtJS自定义主题(theme)样式详解(excel自定义样式)

  • PHP:tempnam()的用法_Filesystem函数(php __destruct)

    PHP:tempnam()的用法_Filesystem函数(php __destruct)

  • 在PHP站点的页面上添加Facebook评论插件的实例教程(phpinfo页面)

    在PHP站点的页面上添加Facebook评论插件的实例教程(phpinfo页面)

  • PHP房贷计算器实例代码,等额本息,等额本金(房贷计算器搜房网)

    PHP房贷计算器实例代码,等额本息,等额本金(房贷计算器搜房网)

  • sql语句中单引号嵌套问题(一定要避免直接嵌套)(sql语句中单引号是什么)

    比如下面例子是存储过程里查询时的语句示例

    红色部分是会报错的,应该写成 @condition= 'ROOMTYPElike ‘ ‘%标准间%' ‘ ', 蓝色部分不是双引号,而是两个单引号

    谈谈sqlserver自定义函数与存储过程的区别 一、自定义函数:1.可以返回表变量2.限制颇多,包括不能使用output参数;不能用临时表;函数内部的操作不能影响到外部环境;不能通过select返回结果

    深入分析SqlServer查询计划 对于SQLServer的优化来说,优化查询可能是很常见的事情。由于数据库的优化,本身也是一个涉及面比较的广的话题,因此本文只谈优化查询时如何看懂SQ

    sql 判断字符串中是否包含数字和字母的方法 判断是否含有字母selectPATINDEX('%[A-Za-z]%',‘ads')=0(如果存在字母,结果1)判断是否含有数字PATINDEX('%[0-9]%',‘sdf" class="img-responsive" alt="sql语句中单引号嵌套问题(一定要避免直接嵌套)(sql语句中单引号是什么)">

    sql语句中单引号嵌套问题(一定要避免直接嵌套)(sql语句中单引号是什么)

  • 简单谈谈MySQL优化利器-慢查询(mysql好在哪里)

    简单谈谈MySQL优化利器-慢查询(mysql好在哪里)

  • Win10桌面图标显示不正常怎么办 win10 图标显示异常的快速解决办法(win10桌面图标显示错误)

    Win10桌面图标显示不正常怎么办 win10 图标显示异常的快速解决办法(win10桌面图标显示错误)

  • Win10 Mobile将迎来原生的Windows10通知同步功能(windows mobile)

    Win10 Mobile将迎来原生的Windows10通知同步功能(windows mobile)

  • 详解vue+css3做交互特效的方法(vue css)

    详解vue+css3做交互特效的方法(vue css)

  • 通过google全球缓存IP安装安卓SDK(谷歌的全球化发展战略)

    通过google全球缓存IP安装安卓SDK(谷歌的全球化发展战略)

  • 基础的十进制按位运算总结与在Python中的计算示例(基础的十进制按什么来算)

    基础的十进制按位运算总结与在Python中的计算示例(基础的十进制按什么来算)

  • 不予认定一般纳税人
  • 个人所得税应纳税所得额减半征收
  • 收到商业汇票计入科目
  • 税控盘清卡失败
  • 主表第17栏应该等于定期
  • 小规模纳税人发票图片
  • 个税速算扣除数是怎么计算出来的
  • 企业因购买材料开出的商业汇票属于什么会计科目
  • 费用一定计入当期损益吗
  • 报废 库存商品
  • 房屋租赁费发票可以抵扣吗
  • 增值税发票已作废怎么办
  • 顾问费属于劳务费吗
  • 建筑工程老项目时间
  • 2016年172号
  • 税控服务系统
  • 政府补贴收入账户是什么
  • 房租费属于无形资产吗
  • 文化公司发展战略
  • 成本分摊会计
  • 主板外部接口是用来连接
  • 泡脚有什么好处和作用
  • 长期债权投资收回的利息 现金流量表
  • 佣金代扣代缴增值税还有附加税吗
  • 代收消费税计算
  • 苹果a1530是什么
  • 年度一次性计税
  • 无形资产的摊销年限不得低于多少年
  • 收入和支出怎么合计
  • members-area.exe是什么进程 members-area进程查询
  • 通过session实现用户的登录与登出功能
  • php数据迁移
  • 路由配置中network怎么用
  • web前端面试基础知识
  • 云服务器 chia
  • css实现文字颜色渐变
  • 给员工期权和给股票的区别
  • 购入固定资产的进项税额可以抵扣吗
  • 哪些企业可以开13点税票
  • 外币报表折算差额会计分录
  • 股东借款属于什么科目
  • 收到发票现金支付
  • Sqlite数据库里插入数据的条数上限是500
  • 零申报一定要有员工吗
  • mysql的常用命令
  • 差旅费报销人员范围
  • 定额发票已验旧怎么办
  • 营业外收入是指企业确认与企业生产经营活动没有
  • 银行怎么划分标准
  • 投资收益影响营业额吗
  • 计提存货跌价准备计算公式
  • 费用减少利润减少的情况
  • 对公支付的款项没有发票怎么报销
  • 处置存货损失应该放哪个科目
  • 支付货款订金入什么科目
  • 一般纳税人应交增值税怎么算
  • 代垫个税费怎么做账
  • 印花税是本月交上个月的吗
  • 固定资产转固流程图
  • 股息红利等权益性投资收益
  • 期间费用包括哪些费用
  • 一个绝招 组合的成语
  • 64位win7旗舰版右下角音量小喇叭图标不见了怎么找回?
  • vi修改文件
  • win8有几种版本
  • win10怎么设置有线网络
  • ubuntu ftp服务器怎么搭建
  • win7win10双硬盘双系统
  • win7系统运行红警黑屏有声音
  • dos脚本 菜鸟教程
  • android基础教程
  • jquery添加节点
  • 如何获取电子户口簿
  • javascript高级教程pdf
  • jquery图表
  • android设计模式与最佳实践 pdf
  • 特斯拉绿色牌照
  • 地税局上班时间是几点
  • 单据整理方法
  • 省级税务机关是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设