信息源转 RSS 框架 – source2RSS 的安装步骤

source2RSS 计划成为通用的「信息源转 RSS」的 Python 框架,目前支持两大类信息源:

  1. 参考官方自带的抓取器,继承抽象基类编写抓取器,作为插件供主程序调用,提供网站信息流(主要用于为网站生成 RSS)
  2. API 接收到的合法格式的 JSON 数据(主要用于将 RSS 作为提醒的渠道以及分布式所需)
  3. (计划)Newsletter 转 RSS

source2RSS 将定期运行抓取器获得信息流,并更新对应的 RSS 源;或在 API 收到数据后,保存其数据,并生成 RSS 源。

项目地址: AhFeil/source2RSS: 一个信息源转 RSS 的 Python 框架,专注简化数据抓取后到 RSS 实际可用这一过程 (github.com)

可以前往此网页查看已有的 RSS 源: Index of /source2rss/ (vfly2.com)

指标 描述
适用系统 Debian 系发行版,包括 Ubuntu, Armbian,其他发行版稍改命令一般也可
走通流程时间 15 分钟

(仅)对于 Python 新人,尤其是对爬虫感兴趣的,相信这个项目很适合用作参考借鉴

原生安装 source2RSS

程序依赖 MongoDB 作为数据库,依赖 Nginx 提供 RSS 文件的访问

前置准备

推荐使用普通用户,这里假设用户名为 vfly2,并在家目录下的 pythonServe 放项目工作目录。

创建目录 /home/vfly2/pythonServe :

mkdir -p ~/pythonServe/ && cd ~/pythonServe/

拉取仓库(并创建配置和数据目录):

git clone https://github.com/AhFeil/source2RSS.git && cd source2RSS
# git clone https://git.ahfei.blog/ahfei/source2RSS.git && cd source2RSS

安装环境和依赖( Python versions 3.8+ )

sudo apt update && sudo apt install python3 python3-venv -y

运行初始化部署脚本

bash ./setup4host.sh

作用:

  1. 必须在项目安装目录运行脚本
  2. 创建虚拟环境
  3. 复制示例配置文件到 config_and_data_files 下
  4. 在安装目录生成 systemd 配置文件,可以根据需要修改其中内容,程序默认将以当前用户身份运行

配置 MongoDB: [[15MongoDB#创建用户]]

use source2rss
db.createUser(
   {
     user: "try",
     pwd: "password",
     roles: [ { role: "readWrite", db: "source2rss" } ],
     authenticationRestrictions: [ 
       { clientSource: ["127.0.0.1", "1.2.3.5"] }
     ]
   }
)

连接查看是否成功

mongosh mongodb://try:password@127.0.0.1:27017/source2rss

配置

根据注释自定义(用户级)配置文件,尤其要填写 MongoDB 的相关信息

cd ~/pythonServe/source2RSS && vim config_and_data_files/config.yaml

这个(程序级)配置文件一般不必修改,可以看看内容

cd ~/pythonServe/source2RSS && vim config_and_data_files/pgm_config.yaml

先运行一下,测试是否正常工作

测试抓取器是否能正常调用

.env/bin/python crawler.py

测试定时抓取是否正常

.env/bin/python run_as_scheduled.py

测试完整程序是否能正常运行

.env/bin/uvicorn main:app --host 0.0.0.0 --port 8536

使用 Systemd 守护进程

可以看一下 Systemd 的配置文件,无须修改

sudo vim ./source2RSS.service

更改权限

sudo chmod 644 source2RSS.service

开机自启并立即运行

sudo systemctl enable --now $PWD/source2RSS.service

查看状态

sudo systemctl status source2RSS.service

如有修改 Systemd 的配置文件,使用下面命令刷新

sudo systemctl daemon-reload
sudo systemctl stop source2RSS.service
sudo systemctl start source2RSS.service
sudo systemctl disable source2RSS.service   # 关闭开机自启

Nginx 提供 RSS 文件

使用 acme.sh 自动获取和更新证书: [[02acme.sh]]

记得修改域名

acme.sh --issue -d rss.vfly2.com --webroot /var/www/html
acme.sh --install-cert -d rss.vfly2.com \
--key-file       /etc/ssl/private/rss.vfly2.com.key \
--fullchain-file /etc/ssl/certs/rss.vfly2.com.cer

sudo vim /etc/nginx/sites-available/mp_rss

自行更改域名和路径

server {
    listen 80;
    server_name rss.vfly2.com;

    location /.well-known/acme-challenge/ {
        root /var/www/html;
    }
}

server {
    listen 443 ssl;
    server_name rss.vfly2.com;

    charset      utf-8;

    ssl_certificate /etc/ssl/certs/rss.vfly2.com.cer;
    ssl_certificate_key /etc/ssl/private/rss.vfly2.com.key;

    location /.well-known/acme-challenge/ {
        root /var/www/html;
    }

    # 下面 alias 的路径改为你设置的 RSS 文件所在目录
    location /source2rss/ {
        alias /home/vfly2/pythonServe/source2RSS/config_and_data_files/rss/;
        autoindex on;            # 显示目录
        autoindex_format html;
        autoindex_exact_size off; # 不显示文件大小
        autoindex_localtime on;  # 显示文件时间
    }
    # 显示图片的,方便 B 站的二维码登录
    location /s2r4image/ {
        alias /home/vfly2/pythonServe/source2RSS/config_and_data_files/images/;
        autoindex on;
        autoindex_format html;
        autoindex_exact_size off;
        autoindex_localtime on;
    }
}
sudo ln -s /etc/nginx/sites-available/mp_rss /etc/nginx/sites-enabled/mp_rss

检查配置

sudo nginx -t

重启生效

sudo systemctl reload nginx

迁移

由于使用 MongoDB 作为数据库,因此程序的迁移也就是数据库的迁移。除此之外,可以保存下 config_and_data_files 目录中的两个配置文件。

更新

先停止运行

sudo systemctl stop source2RSS.service && cd ~/pythonServe/source2RSS

在工作目录下,用 Git 拉取最新版本:

git pull

若有必要,更新 requirements 或配置文件等等

然后重启(如果报错,可能添加了依赖库,或者更改了下载项配置格式,前往主页查看修改)

sudo systemctl start source2RSS.service
sleep 3
sudo systemctl status source2RSS.service

查看日志

journalctl -u source2RSS -n 100

运行一下测试抓取器的功能

.env/bin/python crawler.py

原文链接: https://yanh.tech/2024/07/deployment-process-for-source2rss/

版权声明:本博客所有文章除特別声明外,均为 AhFei 原创,采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 技焉洲 (yanh.tech)

保持更新 ٩(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ 清晰恒益的实用技能,欢迎使用 RSS 订阅,如果能留言互动就更好了。

可在 Telegram 群组 https://t.me/vfly2 交流依文章步骤遇到的问题。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇