nodejs的HTML分析利器node-jquery用法淺析
本文實例分析了nodejs的HTML分析利器node-jquery用法。分享給大家供大家參考,具體如下:
首先描述產(chǎn)生這篇隨筆的場景:我需要獲取項目在jenkins構(gòu)建的最新Javascript Coverage顯示在供管理層次查看的項目情況Report上,但是由于jenkins沒有直接的API取得數(shù)據(jù)所需數(shù)據(jù),所以我們只能從自建的容器發(fā)布Javascript Coverage數(shù)據(jù)API,供Report項目使用。
由于采用簡單的數(shù)據(jù)分析,只是Host一個簡單的web Server,所以本人不喜歡Tomcat,IIS這類大型工具,顯得有點殺雞用牛刀,班門弄斧。我更喜歡node.js這類簡易的web容器。所以項目采用node.js,并node.js天然的javascript與html操作的天然一體,借助DOM結(jié)構(gòu)使得解析Html更容易,簡潔。
Node.js解析HTML DOM的當(dāng)然是htmlpaser,jsdom。然而個人更喜歡jQuery的風(fēng)格,與web jQuery的統(tǒng)一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學(xué)習(xí)demo
希望本文所述對大家nodejs程序設(shè)計有所幫助。
- jQuery的Read()方法代替原生JS詳解
- Jquery通過ajax請求NodeJS返回json數(shù)據(jù)實例
- 原生JS版和jquery版實現(xiàn)checkbox的全選/全不選/點選/行內(nèi)點選(Mr.Think)
- jQuery.datatables.js插件用法及api實例詳解
- jQuery+json實現(xiàn)動態(tài)創(chuàng)建復(fù)雜表格table的方法
- jquery popupDialog 使用 加載jsp頁面的方法
- 分享javascript、jquery實用代碼段
- jquery中用jsonp實現(xiàn)搜索框功能
- 使用jquery.qrcode.js生成二維碼插件
- jQuery與JavaScript節(jié)點創(chuàng)建方法的對比
相關(guān)文章
node.js使用express-jwt報錯:expressJWT?is?not?a?function解決
這篇文章主要給大家介紹了關(guān)于node.js使用express-jwt報錯:expressJWT?is?not?a?function解決的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2023-03-03
node.js 中間件express-session使用詳解
這篇文章主要給大家介紹了node.js中間件express-session使用的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-05-05
在Linux系統(tǒng)中搭建Node.js開發(fā)環(huán)境的簡單步驟講解
這篇文章主要介紹了在Linux系統(tǒng)中搭建Node.js開發(fā)環(huán)境的步驟,Node使得JavaScript程序可以在本地操作系統(tǒng)環(huán)境中解釋運行,需要的朋友可以參考下2016-01-01
解決node.js含有%百分號時發(fā)送get請求時瀏覽器地址自動編碼的問題
這篇文章主要介紹了解決node.js含有%百分號時發(fā)送get請求時瀏覽器地址自動編碼的問題,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11
better?sqlite3安裝node?gyp原生模塊編譯prebuild-install
這篇文章主要為大家介紹了Nodejs關(guān)于原生模塊編譯node-gyp?+?prebuild-install?(以安裝?better-sqlite3為例)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11

