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实现获取某宝商品分类
May 28 NodeJs
快速掌握Node.js之Window下配置NodeJs环境
Mar 21 NodeJs
NodeJS使用formidable实现文件上传
Oct 27 NodeJs
NodeJS实现客户端js加密
Jan 09 NodeJs
解决nodejs中使用http请求返回值为html时乱码的问题
Feb 18 NodeJs
基于Nodejs利用socket.io实现多人聊天室
Feb 22 NodeJs
nodejs制作爬虫实现批量下载图片
May 19 NodeJs
Nodejs 和Session 原理及实战技巧小结
Aug 25 NodeJs
nodejs判断文件、文件夹是否存在及删除的方法
Nov 10 NodeJs
nodejs实现UDP组播示例方法
Nov 04 NodeJs
使用nodejs实现JSON文件自动转Excel的工具(推荐)
Jun 24 NodeJs
NodeJS模块Buffer原理及使用方法解析
Nov 11 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模板引擎SMARTY
2006/10/09 PHP
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
destoon各类调用汇总
2014/06/20 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
2015/01/22 PHP
PHP如何将log信息写入服务器中的log文件
2015/07/29 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
深入理解JavaScript中的浮点数
2016/05/18 Javascript
AngularJS 中的事件详解
2016/07/28 Javascript
AngularJS $injector 依赖注入详解
2016/09/14 Javascript
jQuery中DOM节点删除之empty与remove
2017/01/20 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
2017/05/31 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
vue缓存之keep-alive的理解和应用详解
2020/11/02 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
Python实现购物车购物小程序
2018/04/18 Python
python 正确保留多位小数的实例
2018/07/16 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
Python使用gRPC传输协议教程
2018/10/16 Python
Python之NumPy(axis=0 与axis=1)区分详解
2019/05/27 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
2020/01/16 Python
Python性能测试工具Locust安装及使用
2020/12/01 Python
如何利用python 读取配置文件
2021/01/06 Python
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
加拿大奢华时装品牌:Mackage
2018/01/10 全球购物
vue路由实现登录拦截
2021/03/24 Vue.js
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
造价工程师个人求职信
2013/09/21 职场文书
银行奉献演讲稿
2014/09/16 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
八年级地理课件资料及考点知识分享
2019/08/30 职场文书
导游词之永济鹳雀楼
2020/01/16 职场文书