nodejs爬虫–抓取优快云某用户全部文章
最近正在学习node.js,就想搞一些东西来玩玩,于是这个简单的爬虫就诞生了。
准备工作
- node.js爬虫肯定要先安装node.js环境
- 创建一个文件夹
- 在该文件夹打开命令行,执行
npm init
初始化项目
正式开始
安装依赖
- express 用来搭建一个简单http服务器,也可以使用node原生api
- cheerio 相当于node版的jQuery,用来解析页面
- superagent 用来请求目标页面
- eventproxy 解决同时处理多个页面的问题
直接使用npm install express cheerio superagent eventproxy
来安装依赖包,当然你也可以用别的方法。
创建建好目录
node-spider-csdn
├─ .gitignore
├─ node_modules
├─ README.md
├─ index.js 项目入口
├─ package-lock.json
├─ package.json
└─ routes
└─ csdn.js 爬虫主要代码
创建一个Http服务器
在index.js
文件中,实例化一个express
对象,启动一个Http服务
const express = require('express');
const app = express();
app.listen(3000, function() {
console.log('running in http://127.0.0.1:3000');
});
这样就启动了一个简单的Http本地服务,执行node index.js
后通过http://127.0.0.1:3000
就可以访问到这个服务器。有关Express的更多内容可以参考官方文档。
编写csdn.js
模块
先引入csdn.js
文件并且添加路由
const express = require('express');
const csdn = require('./routes/csdn.js');
const app = express();
app.use(csdn);
app.listen(3000, function() {
console.log('running in http://127.0.0.1:3000');
});
然后开始编写csdn.js
整体结构
// 引入需要的第三方包
const cheerio = require('cheerio');
const superagent = require('superagent');
const express = require('express');
const eventproxy = require('eventproxy');
const router = express.Router(); // 挂载路由
const ep = new eventproxy();
router.get('/csdn/:name', function(req, res) {
const name = req.params.name; // 用户id
// 具体实现...
});
// 将router暴露出去
module.exports &#