說到爬蟲其實并沒有想象中那么復雜,原理就是向目標URL發送請求然后把響應解析成我們想要的數據格式,如果涉及Token鑒權則比較復雜一點,本次只講解最簡單的入門靜態爬蟲。
node.js中實現爬蟲推薦兩個庫,和
npm install request
npm install cheerio
用來發送請求;則是核心功能的快速簡潔靈活的實現,可以直接對請求返回的頁面html進行式的dom操作。
(一)dom爬取
下面給一個最簡單的爬蟲例子,我們爬取簡書我的主頁的用戶名
打開要爬取的頁面并要找到用戶名的dom節點
按照的選擇器寫法獲取,這里應該是$('.main-top>.title>a').text()
附上代碼
const request = require('request')
const cheerio = require('cheerio')
request('https://www.jianshu.com/u/5b23cf5114a1', (err, res) => {

if (err) {
console.log(err.code)
}
else {
let $ = cheerio.load(res.body)
console.log($('.main-top>.title>a').text())
}
})
(二)列表爬取
如果要爬取一個列表靜態網頁的爬取思路,例如我的簡書Blog列表,那該怎么實現呢,同理,使用的each方法靜態網頁的爬取思路,該方法會對選擇器內的匹配dom進行遍歷。按照同樣的步驟先找到dom節點再進行解析。
附上參考代碼
const request = require('request')
const cheerio = require('cheerio')

request('https://www.jianshu.com/u/5b23cf5114a1', (err, res) => {
if (err) {
console.log(err.code)
}
else {
let $ = cheerio.load(res.body)
let data = []
$('.note-list>li').each(function (i) {
data.push($(this).find('.title').text());
});
console.log(data)
}
})
靜態爬蟲到此結束了,后面還會講解動態網頁的爬取。