媒介
为了更好分享和宣布本身的内容,如今供应RSS效劳的网站和社区异常之多,如今基于python
,java
等平台的RSS爬虫异常之多,所以连系node高并发特征,本身用node写了一个RSS爬虫——rss-worker
。
简介
rss-worker
是一个耐久的可配的rss爬虫。支撑多URL的并行爬取,而且会将一切条目按时候递次举行保留,保留花样为"时候\n题目\n内容\n\n"
来供运用或剖析,支撑的保留体式格局有fs
与mongodb
。
效果演示
一个抓取https://github.com/alsotang.atom
,https://cnodejs.org/rss
,http://segmentfault.com/feeds/blogs
内容24小时的输出(2015/5/6 19:30至2015/5/7 19:30 ):
源码地点:这里 , 欢迎来star,follow。
重要流程
爬取:并发地对一切指定URL运用superagent发送要求,并在一切URL悉数爬取终了后依据指定距离再次发出爬取要求
效果更新:在内存中缓存了一个lastUpdate
字段,与每次的爬取效果作比对
支撑fs
和mongo
存储:应用persistence
层供应一致接口,对外隐蔽差别完成
装置运用
直接经由过程npm:
SHELL
npm install rss-worker --save
示例
js
var RssWorker = require('rss-worker'); var opt = { urls: ['https://cnodejs.org/rss', 'https://github.com/DavidCai1993.atom', 'http://segmentfault.com/feeds'], store: { type: 'fs', dist: './store/rss.txt' }, timeout: 10 }; var rssWorker = new RssWorker(opt); rssWorker.start();
API
new RssWorker(options)
天生一个RssWorker的实例
options:
-
urls(Array)
– 必选,须要抓取的rss地点的数组 -
store(Object)
– 存储体式格局,须要设置type
与dist
两属性-
type
– 存储体式格局,可选fs
(默许)或mongodb
-
dist
– 存储效果的文件地点(将会自动建立),如:./store/rss.txt
(fs),mongodb://localhost:27017/rss_worker
(mongodb)
-
-
timeout(Number)
– 每次抓取的距离(秒),默许为60秒
start()
最先抓取
forceToEnd()
发出住手抓取信号,将不会继承抓取,但不会影响到正在举行的本次抓取。