我的爬蟲程式是用nodejs寫的,因為最近在學這個東西,其中使用了express框架,以及cheerio和superagent兩個模組。cheerio模組是nodejs處理html內容的神器,例如var $ = cheerio.load(html)
,將頁面的html內容載入下來後,便可使用jquery語法進行操作,極為省力。superagent模組是http模組的公升級,其鏈式的語法極大地方便了http方法的書寫,而且**十分整潔。
接下來看**:
var express = require('express');
var cheerio = require('cheerio');
var superagent = require('superagent');
var url = '';
function
filtervideos
(html)
videoinfo.each(function
(item) )
})videosdata.push(videodata);
})return videosdata;
}function
printvideoinfo
(videosdata) )
})return data;
}(req,res,next) else ;
res.send(result);
}
})})
filtervideos函式是將請求頁面的html內容進行過濾,篩選我所需要的資訊。這些資料的結構如圖:
printvideoinfo函式是將我的資料結構轉化為一定的格式,使之更清晰明了地顯示在頁面上。
最後通過乙個路由把資料傳送到頁面上。有乙個小問題是,通過printvideoinfo函式得到的data是乙個陣列,如何把陣列的每個元素逐行列印到頁面上呢?我首先想當然地通過乙個for迴圈,每次send乙個元素,結果如何?頁面只顯示了陣列的第乙個元素,並且命令列上報了乙個cant set headers after they are send.雖然不太懂原理,大概就是不能重複send的意思吧…(逃)。之後便有了這個方法,把每個元素包裝上< p>,通過乙個迴圈把所有的< p>語句連線到乙個字串result中,再進行res.send(result)就成功了。結果如下圖(不同時間點的直播資訊不同):
到這裡乙個簡易的爬蟲程式就完成了。雖然這個程式沒有很複雜的演算法,也只取到了首頁的直播資料,但也是乙個nodejs小白的第乙個爬蟲程式,各位大神非喜勿噴!
nodejs 簡易爬蟲
用nodejs編寫爬蟲跟其他語言一樣,比較簡單,比較各個語言標準庫都差不多,主要就是抓取頁面,然後分析dom節點,獲取資料。requests 經典的請求庫,cherrio 像jquery一樣解析dom的庫。這裡用csdn舉例。var request require request var promi...
網路爬蟲 Nodejs
要抓取網頁資訊首先要獲取部落格主頁的html資訊,使用 http.get options callback 方法獲取資訊,如下 其中url 為我的 部落格主頁,獲取主頁html後,需要對資訊進行挑選,在部落格主頁右鍵選擇檢視原始碼,可以找到所需資訊如下 newcomments class panel...
python nodejs爬蟲 nodejs爬蟲
生活中遇到了問題,想去成都買個房,那哪個區域價效比高肯定要考慮一番了,最粗暴直接的就是看租售比,遂打算去鏈家網爬上各個小區的賣房單價和租房單價比上一比,python寫爬蟲無疑是最流行的了,但最近在研究node,感覺寫個爬蟲強化一下node姿勢水平還是挺不錯的。開整。首先http請求工具和dom解析工...