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访问ActiveX对象,以操作Access数据库为例。
Dec 15 NodeJs
Nodejs Post请求报socket hang up错误的解决办法
Sep 25 NodeJs
nodejs实现HTTPS发起POST请求
Apr 23 NodeJs
nodejs实现获取当前url地址及url各种参数值
Jun 25 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
Jan 12 NodeJs
nodejs mysql 实现分页的方法
Jun 06 NodeJs
nodeJS实现简单网页爬虫功能的实例(分享)
Jun 08 NodeJs
nodejs socket服务端和客户端简单通信功能
Sep 14 NodeJs
nodejs中密码加密处理操作详解
Mar 20 NodeJs
nodejs 日志模块winston的使用方法
May 02 NodeJs
nodejs微信开发之自动回复的实现
Mar 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
一段php加密解密的代码
2007/07/16 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
2012/06/17 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
php对二维数组进行排序的简单实例
2013/12/19 PHP
ThinkPHP应用模式扩展详解
2014/07/16 PHP
php cookie中点号(句号)自动转为下划线问题
2014/10/21 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
PHP7变量处理机制修改
2021/03/09 PHP
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
解析JavaScript中的标签语句
2013/06/19 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
JS过滤url参数特殊字符的实现方法
2013/12/24 Javascript
Jquery api 速查表分享
2015/01/12 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
Vue.js -- 过滤器使用总结
2017/02/18 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
Weex开发之地图篇的具体使用
2019/10/16 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
微信小程序之左右布局的实现代码
2019/12/13 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
2019/08/27 Python
意大利综合购物网站:Giordano Shop
2016/10/21 全球购物
自主招生自荐信范文
2013/12/04 职场文书
家长会演讲稿范文
2014/01/10 职场文书
致长跑运动员加油稿
2014/02/20 职场文书
学生期末评语大全
2014/04/30 职场文书
学校花圃的标语
2014/06/18 职场文书
球队口号
2014/06/18 职场文书
如何写辞职信
2015/05/13 职场文书
nginx常用命令放入shell脚本详解
2021/03/31 Servers
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA
Python  lambda匿名函数和三元运算符
2022/04/19 Python