Node.js实现一个小爬虫
分析
我们将用最简单的代码实现一个简单的小爬虫。本示例采用ES6写法。首先我们要安装第三方cheerio模块,在项目目录使用npm install cheerio --save
命令即可。在文件中我们需要引入如下模块:
模块名 | 作用 |
---|---|
cheerio | 类似jQuery,方便对DOM内容操作 |
https | 针对https协议,http模块用法类似 |
代码实现
// 引入模块
const https = require('https');
const cheerio = require('cheerio');
// 爬取目标网站URL
let url = 'https://microzz.com';
// 使用get方法访问
https.get(url, res => {
let html = '';
// 监听data事件获取html源码
res.on('data', data => {
html += data;
});
// 监听end事件,同时把获取到的数据传给filterData方法进行过滤
res.on('end', () => {
let titles = filterData(html);
console.log(titles);
});
}).on('error', e => {
console.log(e.message);
});
// 使用cheerio模块对内容进行筛选过滤
function filterData(html) {
let $ = cheerio.load(html);
let oTitles = $('.post-title-link');
let titles = '';
oTitles.each( (index, item) => {
let title = $(item).text();
let end = index == (oTitles.length - 1) ? '' : '\n';
titles += '【' + (index+1) + '】' + title + end;
});
return titles;
}
至此一个简单的爬取 https://microzz.com 文章内容标题的小爬虫就完成啦😄