歡迎關注我的微信公眾號 "前端攻城",我不定期會更新一些內容。
我就直接上代碼了:)
var http = require('http');
var cheerio = require('cheerio');
var url = "http://www.baidu.com"; //初始url
function fetchPage(x) { //封裝了一層函數(shù)
startRequest(x);
}
function startRequest(x) {
//采用http模塊向服務器發(fā)起一次get請求
http.get(x, function (res) {
var html = ''; //用來存儲請求網(wǎng)頁的整個html內容
var titles = [];
res.setEncoding('utf-8'); //防止中文亂碼
//監(jiān)聽data事件,每次取一塊數(shù)據(jù)
res.on('data', function (chunk) {
html += chunk;
});
//監(jiān)聽end事件,如果整個網(wǎng)頁內容的html都獲取完畢,就執(zhí)行回調函數(shù)
res.on('end', function () {
// console.log(html)
var $ = cheerio.load(html, {decodeEntities: false});
//采用cheerio模塊解析 html
var aa = "";
aa += $('title').html().trim();
console.log(aa);
});
}).on('error', function (err) {
console.log(err);
});
}
fetchPage(url); //主程序開始運行
我只是簡單使用了 http 模塊,以及一個第三方的 cheerio 模塊(node 中的jquery)用來解析html。如果你需要一個更復雜的爬蟲,可以自己引入一些第三方模塊,實現(xiàn)模擬點擊、下載圖片等功能。