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教程 安装express及配置app.js文件的详细步骤
May 11 NodeJs
nodejs中使用monk访问mongodb
Jul 06 NodeJs
Nodejs学习笔记之NET模块
Jan 13 NodeJs
Nodejs Stream 数据流使用手册
Apr 17 NodeJs
nodejs连接mongodb数据库实现增删改查
Dec 01 NodeJs
nodejs搭建本地服务器并访问文件的方法
Mar 03 NodeJs
nodejs读写json文件的简单方法(必看)
Mar 09 NodeJs
nodejs入门教程六:express模块用法示例
Apr 24 NodeJs
nodejs 子进程正确的打开方式
Jul 03 NodeJs
详解nodejs中express搭建权限管理系统
Sep 15 NodeJs
nodejs微信开发之授权登录+获取用户信息
Mar 17 NodeJs
nodejs语言实现验证码生成功能的示例代码
Oct 13 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
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
PHP insert语法详解
2008/06/07 PHP
php ajax 静态分页过程形式
2011/09/02 PHP
PHP中的错误处理、异常处理机制分析
2012/05/07 PHP
php unlink()函数使用教程
2018/07/12 PHP
Javascript的IE和Firefox兼容性汇编
2006/07/01 Javascript
javaScript 读取和设置文档元素的样式属性
2009/04/14 Javascript
JavaScript Array扩展实现代码
2009/10/14 Javascript
jQuery动画animate方法使用介绍
2013/05/06 Javascript
addeventlistener监听scroll跟touch(实例讲解)
2017/08/04 Javascript
AngularJs 延时器、计时器实例代码
2017/09/16 Javascript
JS判断数组那点事
2017/10/10 Javascript
Node.js 中使用 async 函数的方法
2017/11/20 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
vue-lazyload使用总结(推荐)
2018/11/01 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
2019/11/09 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
Ant Design的Table组件去除
2020/10/24 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
Python网络编程详解
2017/10/31 Python
浅述python2与python3的简单区别
2018/09/19 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
iframe在移动端的缩放的示例代码
2018/10/12 HTML / CSS
英国领先的狗和宠物美容专家:Christies Direct
2017/04/03 全球购物
英语专业学子个人的自我评价
2013/10/02 职场文书
食品工程专业求职信
2014/06/15 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书
MySQL 常见存储引擎的优劣
2021/06/02 MySQL