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的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
Sep 26 NodeJs
Nodejs极简入门教程(一):模块机制
Oct 25 NodeJs
nodeJS代码实现计算交社保是否合适
Mar 09 NodeJs
Nodejs学习笔记之入门篇
Apr 16 NodeJs
NodeJS配置HTTPS服务实例分享
Feb 19 NodeJs
nodejs实现邮件发送服务实例分享
Mar 29 NodeJs
使用 NodeJS+Express 开发服务端的简单介绍
Apr 07 NodeJs
详解使用nodeJs安装Vue-cli
May 17 NodeJs
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
Jul 05 NodeJs
nodejs+express搭建多人聊天室步骤
Feb 12 NodeJs
NodeJs 文件系统操作模块fs使用方法详解
Nov 26 NodeJs
Nodejs让异步变成同步的方法
Mar 02 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
各种咖啡的英文名子是什么
2021/03/03 新手入门
php 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
javascript中clone对象详解
2014/12/03 Javascript
jquery实现二级导航下拉菜单效果
2015/12/18 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
angularjs下拉框空白的解决办法
2017/06/20 Javascript
jQuery实现frame之间互通的方法
2017/06/26 jQuery
微信小程序wx.getImageInfo()如何获取图片信息
2018/01/26 Javascript
vue项目使用微信公众号支付总结及遇到的坑
2018/10/23 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
Python实现拼接多张图片的方法
2014/12/01 Python
Python yield 使用浅析
2015/05/28 Python
Python对文件操作知识汇总
2016/05/15 Python
Python实现批量检测HTTP服务的状态
2016/10/27 Python
Python 多进程和数据传递的理解
2017/10/09 Python
python中for用来遍历range函数的方法
2018/06/08 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
Python利用sqlacodegen自动生成ORM实体类示例
2019/06/04 Python
python使用rsa非对称加密过程解析
2019/12/28 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
使用CSS实现阅读进度条
2017/02/27 HTML / CSS
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
美国办公用品折扣网站:Shoplet.com
2019/11/24 全球购物
资产评估专业学生的自我鉴定
2013/11/14 职场文书
美发店5.1活动方案
2014/01/24 职场文书
创先争优承诺书范文
2014/03/31 职场文书
大学生入党群众意见书
2015/06/02 职场文书
婚前协议书怎么写,才具有法律效力呢 ?
2019/06/28 职场文书
Redis高并发缓存架构性能优化
2022/05/15 Redis