用nodejs编写爬虫跟其他语言一样,比较简单,比较各个语言标准库都差不多,主要就是抓取页面,然后分析dom节点,获取数据。
requests 经典的请求库,cherrio 像jquery一样解析dom的库。
这里用csdn举例。
var request = require('request');
var promise = require('bluebird');
const cheerio = require('cheerio');
const baseUrl = "https://blog.csdn.net/ghostyusheng/article/list/";
function startReq(url) {
return new Promise(function (resolve, reject) {
let titles = [];
request(url, function (error, response, body) {
const $ = cheerio.load(body);
const data = $('h4 > a');
data.map((k) => {
const title = data[k].children[0].next.next.data;
titles.push(title);
})
resolve(titles);
});
});
}
for (let i = 1; i < 10; i++) {
const url = baseUrl + i;
promise
.all(startReq(url))
.then(function(titles) {
console.log('scrawl complate!', titles);
})
}