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的模板视图机制分析
Jul 19 NodeJs
Nodejs全栈框架StrongLoop推荐
Nov 09 NodeJs
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
Nov 20 NodeJs
nodejs初步体验篇
Nov 23 NodeJs
Nodejs下DNS缓存问题浅析
Nov 16 NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 NodeJs
详解nodejs模板引擎制作
Jun 14 NodeJs
nodejs 图片预览和上传的示例代码
Sep 30 NodeJs
nodejs的路径问题的解决
Jun 30 NodeJs
nodejs中各种加密算法的实现详解
Jul 11 NodeJs
关于NodeJS中的循环引用详解
Jul 23 NodeJs
图解NodeJS实现登录注册功能
Sep 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
2014过年倒计时示例
2014/01/31 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
PHPStrom中实用的功能和快捷键大全
2015/09/23 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
2016/11/14 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
2019/10/22 PHP
javascript sudoku 数独智力游戏生成代码
2010/03/27 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
分享8款优秀的 jQuery 加载动画和进度条插件
2012/10/24 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
微信小程序自定义tabBar组件开发详解
2020/09/24 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
[02:33]2014DOTA2 TI每日综述 LGD涉险晋级DK闯入胜者组
2014/07/14 DOTA
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
python如何对实例属性进行类型检查
2018/03/20 Python
python安装pywin32clipboard的操作方法
2019/01/24 Python
python ChainMap的使用和说明详解
2019/06/11 Python
python模拟菜刀反弹shell绕过限制【推荐】
2019/06/25 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
用python读取xlsx文件
2020/12/17 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
工商管理实习生自我鉴定范文
2013/12/18 职场文书
六一儿童节活动总结
2014/08/27 职场文书
毕业生实习证明
2014/09/19 职场文书
医德医风个人工作总结2014
2014/11/14 职场文书
2015高三毕业寄语赠言
2015/02/27 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书
办公室规章制度范本
2015/08/04 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis
Python编程super应用场景及示例解析
2021/10/05 Python
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android