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-03node.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-11better?sqlite3安裝node?gyp原生模塊編譯prebuild-install
這篇文章主要為大家介紹了Nodejs關(guān)于原生模塊編譯node-gyp?+?prebuild-install?(以安裝?better-sqlite3為例)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11