nodejs的HTML分析利器node-jquery用法浅析


Posted in NodeJs onNovember 08, 2016

本文实例分析了nodejs的HTML分析利器node-jquery用法。分享给大家供大家参考,具体如下:

首先描述产生这篇随笔的场景:我需要获取项目在jenkins构建的最新Javascript Coverage显示在供管理层次查看的项目情况Report上,但是由于jenkins没有直接的API取得数据所需数据,所以我们只能从自建的容器发布Javascript Coverage数据API,供Report项目使用。

由于采用简单的数据分析,只是Host一个简单的web Server,所以本人不喜欢Tomcat,IIS这类大型工具,显得有点杀鸡用牛刀,班门弄斧。我更喜欢node.js这类简易的web容器。所以项目采用node.js,并node.js天然的javascript与html操作的天然一体,借助DOM结构使得解析Html更容易,简洁。

Node.js解析HTML DOM的当然是htmlpaser,jsdom。然而个人更喜欢jQuery的风格,与web jQuery的统一API,所以选择了node-jquery.其代码部署在Github的https://github.com/coolaj86/node-jquery.

下面是本人写个一个简单demo:  抓取Github Popular project打印在控制台输出。

var $ = require('jquery');
String.format = function() {
  var s = arguments[0];
  for (var i = 0; i < arguments.length - 1; i++) {
    var reg = new RegExp("\\{" + i + "\\}", "gm");
    s = s.replace(reg, arguments[i + 1]);
  }
  return s;
};
 $.get("https://github.com/popular/forked",function(html){
    var $doc = $(html);
  console.log("No. name language star  forks ")
    $doc.find("ul.repolist li.source").each(function(i,project){
    var $project = $(project);
        var name = $project.find("h3").text().trim();
        var language = $project.find("li:eq(0)").text().trim();
        var star = $project.find("li.stargazers").text().trim();
        var forks = $project.find("li.forks").text().trim();
        var row =String.format("{4} {0} {1} {2} {3}",name,
            language,star,forks,i + 1 );
        console.log(row);
    });
 });

此项目寄宿在Github https://github.com/greengerong/node-jquery-demo。仅供了解node-jquery学习demo

希望本文所述对大家nodejs程序设计有所帮助。

NodeJs 相关文章推荐
NodeJS与Mysql的交互示例代码
Aug 18 NodeJs
nodejs读取memcache示例分享
Jan 02 NodeJs
14款NodeJS Web框架推荐
Jul 11 NodeJs
Nodejs实现的一个简单udp广播服务器、客户端
Sep 25 NodeJs
nodejs URL模块操作URL相关方法介绍
Mar 03 NodeJs
nodejs实现邮件发送服务实例分享
Mar 29 NodeJs
详解nodejs微信公众号开发——1.接入微信公众号
Apr 10 NodeJs
详解nodejs实现本地上传图片并预览功能(express4.0+)
Jun 28 NodeJs
基于nodejs res.end和res.send的区别
May 14 NodeJs
NodeJS实现自定义流的方法
Aug 01 NodeJs
nodejs 使用 js 模块的方法实例详解
Dec 04 NodeJs
nodejs如何在package.json中设置多条启动命令
Mar 16 NodeJs
Jquery通过ajax请求NodeJS返回json数据实例
Nov 08 #NodeJs
NodeJS和BootStrap分页效果的实现代码
Nov 07 #NodeJs
NodeJS使用formidable实现文件上传
Oct 27 #NodeJs
nodejs简单实现操作arduino
Sep 25 #NodeJs
NodeJs读取JSON文件格式化时的注意事项
Sep 25 #NodeJs
nodejs微信公众号支付开发
Sep 19 #NodeJs
nodeJs内存泄漏问题详解
Sep 05 #NodeJs
You might like
php的urlencode()URL编码函数浅析
2011/08/09 PHP
PHP及Zend Engine的线程安全模型分析
2011/11/10 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
PHP递归创建多级目录
2015/11/05 PHP
PHP+JQuery+Ajax实现分页方法详解
2016/08/06 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
2017/03/15 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
PHP7修改的函数
2021/03/09 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
JS中使用Array函数shift和pop创建可忽略参数的例子
2014/05/28 Javascript
简述Matlab中size()函数的用法
2016/03/20 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
2016/09/04 Javascript
JS中如何实现复选框全选功能
2016/12/19 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
layui中layer前端组件实现图片显示功能的方法分析
2017/10/13 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
Python 中Django验证码功能的实现代码
2019/06/20 Python
python3中的eval和exec的区别与联系
2019/10/10 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
Python matplotlib画曲线例题解析
2020/02/07 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
Python基础教程(一)——Windows搭建开发Python开发环境
2020/07/20 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
SmartBuyGlasses英国:购买太阳镜和眼镜
2018/01/29 全球购物
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
药品采购员岗位职责
2014/02/08 职场文书
幼儿园评语大全
2014/04/17 职场文书
小学班干部竞选演讲稿
2014/04/24 职场文书
企业诚信承诺书
2014/05/23 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python