time 
设为首页】【收藏本站
当前位置: 主页 > JavaScript > 其它JS框架 > nodejs上HTML分析利器node-jquery使用教程

nodejs上HTML分析利器node-jquery使用教程

时间:2013-04-09 23:03 点击:1623次 字体:[ ]




首先描述产生这篇随笔的场景:我需要获取项目在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



本文地址 : http://www.fengfly.com/plus/view-212408-1.html
标签: nodejs HTML分析 node-jquery
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: