最近在看 Node.js的书,不得不佩服作者的创造力;遂踩着前人的脚印
及时充电,手把手教你写一个简单的爬虫;
准备好了吗 撒,一库哟
cd 到你的Coding 目录下
新建一个文件夹
接着进入这个文件夹中,安装 express
npm install express --registry=https://registry.npm.taobao.org
npm install superagent --save
npm install cheerio --save
touch app.js
superagent 和 cheerio是什么?
superagent它是一个强大并且可读性很好的轻量级ajaxAPI,
是一个关于HTTP方面的一个库,而且它可以将链式写法玩的出神入化。
可以理解成一个 Node.js 版的 jquery,
用来从网页中以 css selector 取数据,使用方式跟 jquery 一样一样的。
接下来就是在 app.js 中写代码了,准备工作已经完成,比如这里爬取的是 cNodejs(优秀的 node 社区)
var express = require('express');
var superagent = require('superagent');
var cheerio = require('cheerio');
var app = express();
app.get('/', function(req, res, next) {
// 用 superagent 去抓取 https://cnodejs.org/ 的内容
superagent.get('https://cnodejs.org/')
.end(function(err, sres) {
// 常规的错误处理
if (err) {
return next(err);
}
var items = [];
// sres.text 里面存储着网页的 html 内容,将它传给 cheerio.load,习惯性地命名为 `$`
// 接下来就可以使用熟悉的 jquery 操作了
var $ = cheerio.load(sres.text);
$('#topic_list .cell').each(function(index, element) {
var $img = $(element).find('img');
var $topic = $(element).find('.topic_title');
items.push({
author: $img.attr('title'),
title: $topic.attr('title'),
href: $topic.attr('href')
});
});
res.send(items);
});
});
app.listen(3000, function() {
console.log('app is listening at port 3000');
});
接着上面的终端里输入 node app.js
然后就可以在http://localhost:3000中看到抓取的数据了
如下图所示: