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入门详解(多篇文章结合)
Mar 07 NodeJs
NodeJS url验证(url-valid)的使用方法
Nov 18 NodeJs
Nodejs sublime text 3安装与配置
Jun 19 NodeJs
使用nodejs、Python写的一个简易HTTP静态文件服务器
Jul 18 NodeJs
nodejs实现HTTPS发起POST请求
Apr 23 NodeJs
nodejs个人博客开发第二步 入口文件
Apr 12 NodeJs
nodejs判断文件、文件夹是否存在及删除的方法
Nov 10 NodeJs
nodejs结合Socket.IO实现的即时通讯功能详解
Jan 12 NodeJs
nodejs基于express实现文件上传的方法
Mar 19 NodeJs
NodeJS实现同步的方法
Mar 02 NodeJs
Nodejs在局域网配置https访问的实现方法
Oct 17 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
S900/ ETON E1-XM 收音机
2021/03/02 无线电
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
URL地址中的#符号使用说明
2011/02/12 Javascript
Ajax异步提交表单数据的说明及方法实例
2013/06/22 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
2017/08/28 jQuery
Angular2学习笔记之数据绑定的示例代码
2018/01/03 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
详解vue-cli 2.0配置文件(小结)
2019/01/14 Javascript
vue 兄弟组件的信息传递的方法实例详解
2019/08/30 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
vue 微信扫码登录(自定义样式)
2020/01/06 Javascript
[54:56]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第三局
2016/03/06 DOTA
python利用高阶函数实现剪枝函数
2018/03/20 Python
pyqt5 获取显示器的分辨率的方法
2019/06/18 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
澳大利亚个性化儿童礼品网站:Bright Star Kids
2019/06/14 全球购物
澳大利亚买卖正宗二手奢侈品交易平台:Luxe.It.Fwd
2019/10/16 全球购物
应届电子商务毕业自荐书范文
2014/02/11 职场文书
2014信息公开实施方案
2014/02/22 职场文书
数控专业毕业生自荐信范文
2014/03/04 职场文书
学徒工职责
2014/03/06 职场文书
八年级上册语文教学计划
2015/01/22 职场文书
环境保护宣传标语大全!
2019/06/28 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL
python实现自动清理文件夹旧文件
2021/05/10 Python
win10系统计算机图标怎么调出来?win10调出计算机图标的方法
2022/08/14 数码科技