MENU

打造自己的RSS生成服务

May 23, 2019 • Read: 17455 • 代码,安全

项目的想法大概在两年前就有了,不过刚开了个头就发现「即刻APP」可以很方便的自定义RSS和微信公众号机器人,比自己搞一套要简单得多,于是把所有的订阅源全部挪到了即刻上,但19年即刻全面关闭了自定义机器人的设置,之前的许多订阅源也失效了,急需折腾一套类似的服务出来。

虽然RSSHub已经比较完善了,但出于学习和更深度定制的需要,还是把之前的项目善始善终。功能上很简单,定时爬取指定的消息源,存入数据库,然后生成对应的RSS,最好能把阅读的功能也做在一起,但目前这个需求并不迫切,之后有心情再看,目前就只有几个API和一个爬虫在跑,后续会完善一下安装部署的相关文档。

以下是项目简介。

貔貅 Pixiu

基于Django和Asyncio的RSS阅读器。


Personal RSS reader based on Django and asyncio.

概览 Overview


背景及意义 Introduction

RSS作为上一个资讯阅读领域的热点技术,在21世纪的今天已经举步维艰,除了少数技术社区和博客,绝大部分有价值的资讯、文章都散布于各色各样的论坛、微信公众号等小圈子当中,给日常的阅读带来了非常多的不便。

因此,「智能」RSS技术应运而生,其中具有代表性的服务有Feed43、RSSHub等,此类服务能自行抓取不提供RSS源的站点文章内容,生成新的RSS XML文件供各类RSS阅读器使用。

本项目也是「智能」RSS技术的一种,相较于其他类似服务,本项目的优势在于

  • 没什么优势
  • 文章内容落盘存储
  • 抓取插件高度自定义(因为需要自己写)

在本项目启动之初,Feed43在国内的访问速度不理想,RSSHub项目的关注度还较低,但由于种种原因,本项目的开发一度停滞,直到2019年初才完成了基础功能的开发,作为一个「智能」RSS项目,功能上的独创性和先进性已经不足,但仍是一个有独特场景的Python后端项目。

技术路线 Technical Roadmap

本项目基于Django Web框架开发,由Django REST Framework提供REST API服务,由 django-environ 提供配置分离功能。爬虫部分基于Asyncio和aiohttp,在保证爬取效率的同时尽量减少资源消耗。

进程管理推荐使用Systemd,日志收集使用Sentry(Sentry真的神器)。

Web后端启动后只有API功能,爬虫需要启动独立进程,与API交互获取任务相关信息,结果存储也通过API完成。

安装与使用 Installation and Usage

等开源了再说。

样例 Example

也是目前仅有的两个订阅源。

暗网交易市场的RSS主要是提供出来做数据泄露监控的,所以暂且只爬了数据版,别的版块翻了翻也没什么太大价值,欢迎接入使用。另外暗网爬起来很简单啊,Tor帮你自动切换IP,出于安全考虑暗网网站一般也不会有JS,只要过了验证码这一关基本畅通无阻,很适合新手学习。。。

顺便开了一个Telegram的RSS机器人,@fantasy_rss_bot,把暗网交易市场的信息同步到了一个频道里,暗网情报,欢迎使用和订阅。


最后,折腾完了这么些,突然发现每天堆这么多文章,认真看进去的并没有多少,非常容易堕入以前学生时代的一个「眼高手低」的陷阱,看着好像什么都知道,实际做起来却不是那么回事,所以还是要真正过了自己的手才算有收获。而一个人的精力是有限的,不可能面面俱到,接下来可能会认真计划一下以后时间投入的方向,因此这个项目的前端部分很可能要鸽,再次给自己留了一个大坑

Archives QR Code
QR Code for this page
Tipping QR Code
Leave a Comment

5 Comments
  1. 小旭 小旭

    1.您能提供对没RSS的网站的付费的,深度自定义的私人订制RSS全文生成服务吗?
    2.或者搭建除了inoreader的rss软件如Tiny Tiny RSS ?或是自建的RSS阅读器,方便获取长城内外的信息

    1. @小旭可以提供定制rss服务,阅读器建议自己搞

  2. zw zw

    我也一直有这个需求,最近发现了“快知”app,可以基本满足我的需要。不妨了解下。

    1. @zw即刻早期也是一样的机器人模式,但现在已经gg了,还是自己搞比较稳。

  3. 等待