UPDATE: rss-engine
经过后续迭代已重新发布,原来的 zju-me-rss 仓库更名为 rss-engine,托管最新的代码,zju-me
和 zju-grs
均作为示例脚本存放在其中,请直接前往 rss-engine 仓库查看使用。
本项目用于定时生成并发布浙江大学研究生院的新闻公告 RSS 源。生成的 RSS 源发布在 GitHub Pages 的子页面,可以通过一般的 RSS 阅读器订阅。
与另一个项目 zju-me-rss 相同,本项目的建立基于自制的 rss_engine
基础框架。在此框架下,可以通过简单的编辑实现自定义 RSS 源的快速搭建。
rss_engine.py
: RSS 框架主体部分,通过调用该程序来生成 .xml 文件get_url_list.py
: 实现了自定义网页抓取区域的函数,更改抓取内容主要修改这一文件url2article.py
: 解析网页内容,返回相关信息,主要调用了URL2io
提供的网页解析 API 服务data_storage.pkl
: 存储 RSS 生成的历史数据logfile.txt
: 日志文件xxx.xml
: 生成的 .xml 文件示例update_rss_feed.sh
: 生成并发布 RSS Feed 的服务器端脚本(以树莓派 OpenWRT 系统为例)
- Python(3) 及以下第三方库:
- requests
- beautifulsoup4
- PyRSS2Gen
- 注册并替换
url2article.py
的用户 token - 在自己的服务器克隆本仓库以及自己的 GitHub Pages 对应仓库
- 配置
update_rss_feed.sh
脚本,将其中的各项路径修改为实际的存放路径 - 为
update_rss_feed.sh
添加执行权限(chmod +x update_rss_feed.sh
) - 使用 Linux crontab 命令,设置脚本定时运行:
crontab -e # 进入编辑
* */23 * * * /root/update_rss_feed.sh # 每隔23小时运行一次(保险起见不使用边界值24,未作深究)
# 退出编辑
crontab -l # 查看定时任务列表
service cron restart
主要通过修改 get_url_list.py
中的 get_url_list*()
函数来自定义需要抓取的页面区域。根据函数修改的具体情况,在 rss_engine.py
调用该函数的对应部分也需要进行基本的配置。