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命令行参数处理模块commander使用实例
Sep 17 NodeJs
轻松创建nodejs服务器(4):路由
Dec 18 NodeJs
轻松创建nodejs服务器(10):处理POST请求
Dec 18 NodeJs
nodejs实现获取当前url地址及url各种参数值
Jun 25 NodeJs
Nodejs Express4.x开发框架随手笔记
Nov 23 NodeJs
进阶之初探nodeJS
Jan 24 NodeJs
详解nodejs中exports和module.exports的区别
Feb 17 NodeJs
利用nodejs监控文件变化并使用sftp上传到服务器
Feb 18 NodeJs
nodejs中全局变量的实例解析
Mar 07 NodeJs
详解使用vscode+es6写nodejs服务端调试配置
Sep 21 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
nodejs利用readline提示输入内容实例代码
Jul 15 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用户指南-cookies部分
2006/10/09 PHP
php设计模式 Factory(工厂模式)
2011/06/26 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
PHP Directory 函数的详解
2013/03/07 PHP
PHP入门教程之操作符与控制结构流程详解
2016/09/09 PHP
读jQuery之十 事件模块概述
2011/06/27 Javascript
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
网站404页面3秒后跳到首页的实例代码
2013/08/16 Javascript
JS获取表格内指定单元格html内容的方法
2015/03/31 Javascript
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
js微信分享API
2020/10/11 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
javascript 闭包详解及简单实例应用
2016/12/31 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python调用新浪微博API项目实践
2014/07/28 Python
wxPython中listbox用法实例详解
2015/06/01 Python
启动targetcli时遇到错误解决办法
2017/10/26 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
python编程进阶之异常处理用法实例分析
2020/02/21 Python
神经网络训练采用gpu设置的方式
2021/03/03 Python
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
JSF界面控制层技术
2013/06/17 面试题
电气技术员岗位职责
2013/11/19 职场文书
货车司机岗位职责
2014/03/18 职场文书
家具商场的活动方案
2014/08/16 职场文书
煤矿施工安全协议书
2016/03/22 职场文书