nodejs簡易爬蟲

2021-07-22 09:59:57 字數 1416 閱讀 6816

我的爬蟲程式是用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解析工...