nodejs上HTML分析利器node-jquery

标签: nodejs html 分析 | 发表时间:2013-02-27 18:13 | 作者:破狼
出处:http://www.cnblogs.com/

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

 

本文链接

相关 [nodejs html 分析] 推荐:

nodejs上HTML分析利器node-jquery

- - 博客园_首页
      首先描述产生这篇随笔的场景:我需要获取项目在jenkins构建的最新Javascript Coverage显示在供管理层次查看的项目情况Report上,但是由于jenkins没有直接的API取得数据所需数据,所以我们只能从自建的容器发布Javascript Coverage数据API,供Report项目使用.

nodejs快速入门

- AreYouOK? - 淘宝数据平台与产品部官方博客 tbdata.org
主要介绍了一下node.js的发展, 现状, 安装, 使用.

NodeJS学习笔记

- - Web前端 - ITeye博客
今天开始学习NodeJS,在这里做个笔记,记录一下我的学习历程,也方便以后参考. Node.js® 是一个基于  Chrome V8 引擎 的 JavaScript 运行时. 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.

NodeJS与Mysql的交互

- - CSDN博客推荐文章
把Mysql Module装到 NodeJS中.   JS脚本 mysqlTest.js. //加载mysql Module  .   //要创建的数据库名  .     //要创建的表名  . 作者:qxs965266509 发表于2013-8-17 9:47:35 原文链接. 阅读:0 评论:0 查看评论.

nodejs web开发入门: Simple-TODO Nodejs 实现版

- Aleafs - CNode社区
看到simple todo的各种python版本实现, 我也来凑凑热闹…. 既然已经有这么多python版本了, 我就对比实现了一个Simple-TODO的nodejs版本: Node TODO, 模版和樣式全部copy自web.py版本.. 源代码: https://github.com/fengmk2/todo.

無痛安裝 NodeJS 和 Node Framework Express

- Hming - 小惡魔 - 電腦技術 - 工作筆記 - AppleBOY
直接到官網下載 Stable 的版本吧,目前是 node-v0.4.10.tar.gz,也可以先看看 API Document. 安裝 Ububtu 相關套件. 下面會使用最原始的編譯方式,所以必須安裝 g++ 套件,否則下 ./configure 的時候,會吐出來沒有安裝過的套件. 兩種方法:1.用 apt-get install nodejs 2.

nodejs-post文件上传原理详解

- never-online - CNode社区
浅谈HTTP中Get与Post的区别. 其中请求报文中的开始行和首部行包含了常见的各种信息,比如http协议版本,方法(GET/POST),accept-language,cookie等等. 而’实体主体’一般在post中使用,比如我们用表单上传文件,文件数据就是在这个’实体主体’当中. 写这篇教程的起因是因为在学习nodejs的过程中,想要自己实现一些文件上传的功能,于是不得不去研究POST.

eclipse配置nodejs开发环境

- - CSDN博客云计算推荐文章
首先说明一下本人的开发环境,个人兴趣爱好问题,这边使用的很多环境都是基于Linux系统下做的,这次也不例外. 前提条件:NodeJs已经在系统中正确安装. 1、下载安装eclipse,地址: http://www.eclipse.org/downloads/. Eclipse Standard 版本即可.

简单高效的nodejs爬虫模型

- - 蓝猫的博客 - 分享前端开发经验和教程
这篇文章讲解一下 yunshare项目的爬虫模型. 使用nodejs开发爬虫很简单,不需要类似python的scrapy这样的爬虫框架,只需要用request或者superagent这样的http库就能完成大部分的爬虫工作了. 使用nodejs开发爬虫半年左右了,爬虫可以很简单,也可以很复杂. 简单的爬虫定向爬取一个网站,可能有个几万或者几十万的页面请求,复杂的爬虫类似google bot这样搜索引擎的蜘蛛爬虫,要每时每刻爬取互联网上最新的内容.

HTML 安全列表

- 火锅土豆 - 酷壳 - CoolShell.cn
下面这个网站罗列了,几乎所有的关于HTML 5 在各种主流浏览器上的安全问题,这些安全问题很有可能将会是黑客攻击你的网上的敲门砖,他们几乎都和Javascript都有关系,你就要好好注意了. IE6,7,8,9,和Opera 8.x, 9.x, 10.x 都支持这样的语法. 这个问题会存在于所有的Firefox版本中,可以让用户进行XSS(跨站脚本)攻击.