1.前言
由于公司有几款新闻,视频类的app产品,于是乎文章和视频的稳定来源成为一个必须解决的问题。 公司也研究了很多的
爬虫方案,最后使用puppeteer开发了一个文章的采集中心。 这是一个基于node的服务器,主要设计的思路是:当接收到抓取某个站点文章的任务后,node服务器就启动一个 爬虫器,将该网站的文章信息解析出来,然后上报给一个java服务器,由java负责数据的处理和存储。在此简单介绍一下node端的实现,这是一个简化版的。
爬虫方案,最后使用puppeteer开发了一个文章的采集中心。 这是一个基于node的服务器,主要设计的思路是:当接收到抓取某个站点文章的任务后,node服务器就启动一个 爬虫器,将该网站的文章信息解析出来,然后上报给一个java服务器,由java负责数据的处理和存储。在此简单介绍一下node端的实现,这是一个简化版的。
2.使用node写一个接口,负责接收中心服务器的文章爬取任务
node搭建一个微服务的话有很多种,这里使用的是express , 使用 npm install --save express 即可。
var express = require('express');
var app = express();
var download163 = require('../download163.js');
// 设置跨域访问
app.all('*',function(req,res,next){
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By",' 3.2.1');
res.header("Content-Type", "application/json;charset=utf-8");
next();
});
app.get('/start',function(req,res){
console.log('接收到分配任务.....');
var url = req.query.url;
console.log('url:'+req.query.url)
console.log('pas:'+req.query.pas)
try {
console.log('开始执行任务.....');
new download163(url);
res.json({
code:200,
work:true
});
} catch(e){
http404(req,res)
}
});
var http404 = app.get('/404',function(req,res){
res.end("404");
});
// 配置服务端口
var server = app.listen(3000,