基于 http 模块实现的爬取拉勾网的数据
var https = require('https');
var cheerio = require('cheerio');
var url = 'https://www.lagou.com/';
https.get(url, function(res) {
var html = '';
res.on('data', function(chunk) {
html += chunk;
});
res.on('end', function() {
findMenu(html);
})
})
function findMenu(htmlStr) {
var $ = cheerio.load(htmlStr);
var $menuMain = $('.menu_main');
var result = [];
$menuMain.each(function(i, item) {
var obj = {};
var h2Text = $(item).find('h2').text();
h2Text = h2Text.trim();
obj.name = h2Text;
obj.subName = [];
var $as = $(item).find('a');
$as.each(function(i, item) {
var aText = $(item).text().trim();
obj.subName.push(aText);
})
result.push(obj);
})
console.log(result);
}
cheerio 模块
简单理解为是使用在服务器端的 jquery。保留了 jquery 选择器的相关功能,去掉了 DOM 操作功能。
使用步骤:
- 项目中安装
npm install cheerio --save-dev
- 引入
var cheerio = require('cheerio')
- 装载
var $ = cheerio.load('<div>我的天,张三真帅</div>');
- 使用相应API