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 相关文章推荐
基于promise.js实现nodejs的promises库
Jul 06 NodeJs
Nodejs实现多人同时在线移动鼠标的小游戏分享
Dec 06 NodeJs
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
Aug 21 NodeJs
nodejs修复ipa处理过的png图片
Feb 17 NodeJs
详解nodejs与javascript中的aes加密
May 22 NodeJs
nodejs的HTML分析利器node-jquery用法浅析
Nov 08 NodeJs
详解NodeJs支付宝移动支付签名及验签
Jan 06 NodeJs
NodeJS链接MySql数据库的操作方法
Jun 27 NodeJs
nodejs中解决异步嵌套循环和循环嵌套异步的问题
Jul 12 NodeJs
NodeJs搭建本地服务器之使用手机访问的实例讲解
May 12 NodeJs
nodejs实现套接字服务功能详解
Jun 21 NodeJs
一文秒懂nodejs中的异步编程
Jan 28 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
thinkphp浏览历史功能实现方法
2014/10/29 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
InnerHtml和InnerText的区别分析
2009/03/13 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
js的hasownproperty使用示例
2014/03/02 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
自己动手写的jquery分页控件(非常简单实用)
2015/10/28 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
AngualrJS中的Directive制作一个菜单
2016/01/26 Javascript
详解Bootstrap插件
2016/04/25 Javascript
node.js从数据库获取数据
2016/05/08 Javascript
如何利用模板将HTML从JavaScript中抽离
2016/10/08 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
Angular4开发解决跨域问题详解
2017/08/28 Javascript
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
Windows下安装Scrapy
2018/10/17 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
python中列表的含义及用法
2020/05/26 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
使用canvas一步步实现图片打码功能的方法
2019/06/17 HTML / CSS
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
澳大利亚领先的优质葡萄酒拍卖会:Langton’s Fine Wines
2019/03/24 全球购物
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
小学教师岗位职责
2013/11/25 职场文书
竞争上岗演讲稿
2014/01/05 职场文书
个人承诺书
2014/03/26 职场文书
公司员工安全协议书
2014/11/21 职场文书
优秀高中学生评语
2014/12/30 职场文书
525心理健康活动总结
2015/05/08 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers