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中简单实现Javascript Promise机制的实例
Dec 06 NodeJs
NodeJS学习笔记之Http模块
Jan 13 NodeJs
初识NodeJS服务端开发入门(Express+MySQL)
Apr 07 NodeJs
nodejs入门教程三:调用内部和外部方法示例
Apr 24 NodeJs
NodeJs的fs读写删除移动监听
Apr 28 NodeJs
使用nodejs爬取前程无忧前端技能排行
May 06 NodeJs
手把手教你把nodejs部署到linux上跑出hello world
Jun 19 NodeJs
NodeJS链接MySql数据库的操作方法
Jun 27 NodeJs
nodejs socket服务端和客户端简单通信功能
Sep 14 NodeJs
详解Nodejs内存治理
May 13 NodeJs
NodeJs生成sitemap站点地图的方法示例
Jun 11 NodeJs
nodejs环境使用Typeorm连接查询Oracle数据
Dec 05 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/08/08 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
php之curl设置超时实例
2014/11/03 PHP
php 使用curl模拟登录人人(校内)网的简单实例
2016/06/06 PHP
PHP大文件切割上传并带进度条功能示例
2019/07/01 PHP
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
js获取当前select 元素值的代码
2010/04/19 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
JavaScript判断是否为数组的3种方法及效率比较
2015/04/01 Javascript
Bootstrap导航条学习使用(一)
2017/02/08 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
2017/10/24 jQuery
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
react中Suspense的使用详解
2019/09/01 Javascript
js获取 gif 的帧数的代码实例
2019/09/10 Javascript
Python 文件和输入输出小结
2013/10/09 Python
Python greenlet实现原理和使用示例
2014/09/24 Python
Python本地与全局命名空间用法实例
2015/06/16 Python
python pandas消除空值和空格以及 Nan数据替换方法
2018/10/30 Python
Python利用scapy实现ARP欺骗的方法
2019/07/23 Python
python实现一个点绕另一个点旋转后的坐标
2019/12/04 Python
Pytorch之保存读取模型实例
2019/12/30 Python
关于Tensorflow使用CPU报错的解决方式
2020/02/05 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
2020/10/22 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
Final类有什么特点
2012/04/25 面试题
法院干警四风问题个人对照检查材料思想汇报
2014/10/07 职场文书
群众路线自我剖析范文
2014/11/04 职场文书
家长对孩子的寄语
2015/02/26 职场文书
2015年网络管理员工作总结
2015/05/21 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
基于angular实现树形二级表格
2021/10/16 Javascript