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实现HTTPS发起POST请求
Apr 23 NodeJs
用NodeJS实现批量查询地理位置的经纬度接口
Aug 16 NodeJs
nodejs进阶(6)—连接MySQL数据库示例
Jan 07 NodeJs
nodejs个人博客开发第三步 载入页面
Apr 12 NodeJs
详解Nodejs之npm&amp;package.json
Jun 15 NodeJs
nodejs中用npm初始化来创建package.json的实例讲解
Oct 10 NodeJs
基于nodejs的雪碧图制作工具的示例代码
Nov 05 NodeJs
Nodejs对postgresql基本操作的封装方法
Feb 20 NodeJs
Nodejs让异步变成同步的方法
Mar 02 NodeJs
nodejs环境使用Typeorm连接查询Oracle数据
Dec 05 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 20 NodeJs
NodeJS开发人员常见五个错误理解
Oct 14 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
用 Composer构建自己的 PHP 框架之构建路由
2014/10/30 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
javaScript Array(数组)相关方法简述
2009/07/25 Javascript
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
2010/02/15 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
网页防止tab键的使用快速解决方法
2013/11/07 Javascript
JS中数组Array的用法示例介绍
2014/02/20 Javascript
关于延迟加载JavaScript
2015/05/05 Javascript
AngularJs 弹出模态框(model)
2016/04/07 Javascript
socket.io学习教程之基础介绍(一)
2017/04/29 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
2017/09/20 jQuery
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
vue项目打包上传github并制作预览链接(pages)
2019/04/19 Javascript
详解async/await 异步应用的常用场景
2019/05/13 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
jquery html添加元素/删除元素操作实例详解
2020/05/20 jQuery
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
Python、Javascript中的闭包比较
2015/02/04 Python
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
2017/10/20 Python
django框架自定义用户表操作示例
2018/08/07 Python
python实现Flappy Bird源码
2018/12/24 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
使用Keras加载含有自定义层或函数的模型操作
2020/06/10 Python
教师师德表现自我评价
2015/03/05 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP
Python如何让字典保持有序排列
2022/04/29 Python