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打印在控制台输出。

复制代码
 1 var $ = require('jquery');
 2 
 3  
 4 
 5 String.format = function() {
 6 
 7     var s = arguments[0];
 8 
 9     for (var i = 0; i < arguments.length - 1; i++) {
10 
11         var reg = new RegExp("\\{" + i + "\\}", "gm");
12 
13         s = s.replace(reg, arguments[i + 1]);
14 
15     }
16 
17  
18 
19     return s;
20 
21 };
22 
23  
24 
25  $.get("https://github.com/popular/forked",function(html){
26 
27  
28 
29         var $doc = $(html);
30 
31     console.log("No.  name  language  star   forks  ")
32 
33         $doc.find("ul.repolist li.source").each(function(i,project){
34 
35  
36 
37         var $project = $(project);
38 
39                var name = $project.find("h3").text().trim();
40 
41                var language = $project.find("li:eq(0)").text().trim();
42 
43                var star = $project.find("li.stargazers").text().trim();
44 
45                var forks = $project.find("li.forks").text().trim();
46 
47                var row =String.format("{4} {0}  {1}  {2}  {3}",name,
48 
49                        language,star,forks,i + 1 );
50 
51               
52 
53                console.log(row);
54 
55         });
56 
57  });
复制代码

此项目寄宿在我Github https://github.com/greengerong/node-jquery-demo。仅供了解node-jquery学习demo,欢迎指教。


本文转自破狼博客园博客,原文链接:http://www.cnblogs.com/whitewolf/archive/2013/02/27/2935618.html,如需转载请自行联系原作者

目录
相关文章
|
26天前
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
44 1
|
13天前
|
存储 JavaScript NoSQL
Node.js新作《循序渐进Node.js企业级开发实践》简介
《循序渐进Node.js企业级开发实践》由清华大学出版社出版,基于Node.js 22.3.0编写,包含26个实战案例和43个上机练习,旨在帮助读者从基础到进阶全面掌握Node.js技术,适用于初学者、进阶开发者及全栈工程师。
40 9
|
22天前
|
JavaScript
如何使用内存快照分析工具来分析Node.js应用的内存问题?
需要注意的是,不同的内存快照分析工具可能具有不同的功能和操作方式,在使用时需要根据具体工具的说明和特点进行灵活运用。
39 3
|
1月前
|
开发框架 JavaScript 前端开发
Node.js日记:客户端和服务端介绍、Node.js介绍
Node.js日记:客户端和服务端介绍、Node.js介绍
|
1月前
|
JavaScript 前端开发 开发工具
Node.js——初识Node.js
Node.js——初识Node.js
34 4
|
3月前
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(8)拓扑元素(Element)_网元(Element)、节点(Node)
本文介绍了Twaver HTML5中的拓扑元素(Element),包括网元(Element)、节点(Node)和连线(Link)的基本概念和使用方法。文章详细解释了Element的属性和方法,并通过示例代码展示了如何在React组件中创建节点、设置节点属性和样式。
57 1
Twaver-HTML5基础学习(8)拓扑元素(Element)_网元(Element)、节点(Node)
|
2月前
|
Java BI API
spring boot 整合 itextpdf 导出 PDF,写入大文本,写入HTML代码,分析当下导出PDF的几个工具
这篇文章介绍了如何在Spring Boot项目中整合iTextPDF库来导出PDF文件,包括写入大文本和HTML代码,并分析了几种常用的Java PDF导出工具。
589 0
spring boot 整合 itextpdf 导出 PDF,写入大文本,写入HTML代码,分析当下导出PDF的几个工具
|
2月前
|
XML JavaScript 数据格式
jquery中html()方法的使用
jquery中html()方法的使用
29 1
|
3月前
|
XML 前端开发 JavaScript
jQuery HTML / CSS 方法
jQuery HTML / CSS 方法
18 2
|
2月前
|
缓存 监控 JavaScript
Node.js中基于node-schedule实现定时任务之详解
Node.js中基于node-schedule实现定时任务之详解
105 0
下一篇
DataWorks