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 相关文章推荐
抛弃Nginx使用nodejs做反向代理服务器
Jul 17 NodeJs
nodejs中简单实现Javascript Promise机制的实例
Dec 06 NodeJs
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
Jan 01 NodeJs
nodejs创建web服务器之hello world程序
Aug 20 NodeJs
NodeJS和BootStrap分页效果的实现代码
Nov 07 NodeJs
详解NodeJs支付宝移动支付签名及验签
Jan 06 NodeJs
nodejs实现发出蜂鸣声音(系统报警声)的方法
Jan 18 NodeJs
详解nodejs爬虫程序解决gbk等中文编码问题
Apr 06 NodeJs
nodeJS实现路由功能实例代码
Jun 08 NodeJs
NodeJS实现图片上传代码(Express)
Jun 30 NodeJs
nodeJS微信分享
Dec 20 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 20 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计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
PHP多例模式介绍
2013/06/24 PHP
php读取本地文件常用函数(fopen与file_get_contents)
2013/09/09 PHP
PHP使用Alexa API获取网站的Alexa排名例子
2014/06/12 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
jQuery实现用户注册的表单验证示例
2013/08/28 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
javascript字符串函数汇总
2015/12/06 Javascript
详解JavaScript中基于原型prototype的继承特性
2016/05/05 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
JS多物体实现缓冲运动效果示例
2016/12/20 Javascript
clipboard.js在移动端复制失败的解决方法
2018/06/13 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
Javascript地址引用代码实例解析
2020/02/25 Javascript
Vue和React有哪些区别
2020/09/12 Javascript
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
2019/02/12 Python
python字符串查找函数的用法详解
2019/07/08 Python
tensorflow查看ckpt各节点名称实例
2020/01/21 Python
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
请解释在new与override的区别
2012/10/29 面试题
大学团支书的自我评价分享
2013/12/14 职场文书
大学生入党思想汇报
2014/01/01 职场文书
战友聚会邀请函
2014/01/18 职场文书
彩色的非洲教学反思
2014/02/18 职场文书
说明书怎么写
2014/05/06 职场文书
工厂见习报告范文
2014/10/31 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
Vue OpenLayer 为地图绘制风场效果
2022/04/24 Vue.js