RSS訂閱實現SNS相關更新自動抓取收集

自動收集備份關註對像的社交賬號(例:twitter、Instagram)及官網更新
我是通過 RSS訂閱+Wordpress自動發布 來實現的。

核心使用工具:RssHub
輔助使用工具:wordpressWP All Import ProEasyCroninoreader

核心是RSS訂閱,本篇日誌主要會講RSS訂閱尤其是RssHub的使用。
另外視頻部分是無法自動保存的,需要我們手動備份

WordPress發布不是必要的。 個人因為目的不光是自己備份保存,也為了方便朋友壹起查看,所以選擇用wordpress架構了壹個專門的博客。事實上如果僅僅是個人需求的話完全可以使用RSS閱讀器來保存&查看。電腦端我推薦 inoreader,界面如下。手機端也有可以去應用商城搜壹下。

Feedly 也是不錯的,但是inoreader 的優勢在於訂閱的文章會永久保留,並且在關聯google賬戶後,可以免費將文章(含圖片)自動保存至 google drive。而這功能feedly是要收費的。那還要說什麼,我們肯定優先選免費的(笑)

另外需要注意的是因為大天朝墻的關係,諸如推特更新 不科學上網的話inoreader是無法直接看到抓取信息的圖片的(畢竟圖片源鏈接被墻了)。當然你要是升級到付費版的話,inoreader到是會把圖片進行加速存到它自己服務器顯示給你看。不過這不是什麼必要的功能,因為google drive那邊的文章自動保存並不會受到影響,而我們的主要目的還是“備份和記錄”。

inoreader 界面,信息流樣式可調整
在偏好設置裡增加google drive的關聯,以便自動同步保存

以上就是自己備份資料的方法了。至於wordpress什麼的可以不去管ry

WP All Import 是wordpress上的壹個自動把RSS訂閱內容發布成文章的插件,個人用的是付費版,並且配合EasyCron(懶的在服務器上直接設置ry)進行自動定期後臺更新。WP上的RSS to Post插件不是只有這壹個,可以自行找找看有沒有比較好用而且免費的。這邊就不多加著墨了。


RSS訂閱源獲取

實現自動記錄核心就是依靠RSS feed訂閱。像官網和blog壹般都是默認會給出RSS訂閱源的(除非網站沒有這個功能,那我們也有對應方法,具體見後面的官網保存部分)
針對這種已經有RSS源的,可以直接使用閱覽器擴展 油猴子Tampermonkey + RSS+ : 顯示當前網站所有的 RSS 這個插件進行檢測

那像是twitter、Facebook、Instagram、微博這種沒有RSS但主流SNS怎麼辦呢?這就要祭出DIYgod巨巨開發的 RssHub 這個RSS聚合工具了!基本涵蓋了目前主流的所有社交平臺,可以將其轉化輸出為RSS訂閱源。使用也很方便,直接看官方的 工具說明書 就好了。

基本上直接使用這個聚合工具給出的演示鏈接就行了。
配合同作者寫的閱覽器擴展 RSSHub-Radar 效果更佳更簡潔易懂

不過有的SNS反爬檢測嚴格,例如Instagram這邊,因為使用演示鏈接的人太多,請求量超標導致RSS源無法生成。所以這就需要我們自行搭建了。

官方的搭建流程: https://docs.rsshub.app/install/

下邊是我自己安裝搗鼓安裝時的壹點記錄,安裝環境是 Ubuntu 18.04.2 LTS
採用的是手動部署方式直接安裝在了服務器根目錄

https://docs.rsshub.app/install/#shou-dong-bu-shu

git clone https://github.com/DIYgod/RSSHub.git
cd RSSHub

執行安裝:

npm install

最後進入 RSSHub 文件夾( /root/RSSHub)中運行命令啟動

npm start

顯示如下則代表運行成功

> [email protected] start /root/RSSHub
> node lib/index.js

info: Listening Port 1200
info: 🎉 RSSHub start! Cheers!

设置 RssHub 保持后台运行 和 开机自启

再次感謝萬能無敵的妖精桑的技術支援,我個人是用的screen維持後台運行
但是開機自啟並不能很好對應。

npm install [email protected] -g  // 安装pm2,这个只用跑这一次
cd /root/RSSHub // 切到你要跑的node程序的主目录
pm2 start lib/index.js --name RSSHub // 这个会设置一个后台程序开始运行RSSHub,
你可能会问lib/index.js哪来的,是写在你的RSSHub的package.json里面的

然后运行: pm2 startup // 这个会给你一条命令,把这条命令复制下来然后运行
即:pm2 save   //  运行pm2 save之前你要跑一下pm2 list确认你的程序在运行

 运行状态和控制看这里:https://pm2.keymetrics.io/docs/usage/quick-start/

http://你部署服務器的IP地址:1200/ 这个就是你自建RSSHub的地址
最後將這個地址綁定域名部署可外網訪問:(服務器有安裝Nginx)

安裝Nginx
更新包  sudo apt-get update
下載安裝  sudo apt-get install nginx

FTP進入目錄 /etc/nginx/sites-available,嫌麻煩可以之間編輯default文件(不推薦)
創建一個默認文件名字隨意我這邊是rsshub,右鍵記事本編輯,輸入如下文字保存
ps:要使用子域名的話記得在你的Domain Name Service域名注冊商那邊添加子域名的DNS解析

server {
        listen 80;
        listen [::]:80;

        server_name 你註冊的的域名地址; ## 綁定域名

        location / {
                proxy_pass http://你部署服務器的IP地址:1200 ; ## 指定端口
        }
}

在服務器創建這個文件的對應軟鏈:

ln -s /etc/nginx/sites-available/文件名 /etc/nginx/sites-enabled

重啟Nginx:

service nginx restart

詳細使用說明參照 指南,替換所有路由例子中的 https://rsshub.app/ 為 http://你設置的域名/ 即可正常使用

如果網頁顯示諸如如下錯誤,則說明服務器需要升級 node.js

LOOKS LIKE SOMETHING WENT WRONG

ReferenceError: URL is not defined
at ctx.state.data.item.forEach (/root/RSSHub/lib/middleware/parameter.js:51:33)
at Array.forEach ()
at module.exports (/root/RSSHub/lib/middleware/parameter.js:32:29)
at
at process._tickDomainCallback (internal/process/next_tick.js:229:7)

升級 npm: sudo npm install npm -g
升級 node.js :sudo npm cache clean -f #清除 npm cache
       npm install -g n # 安裝 n 模塊
       sudo n stable # 安裝最新的 node.js 穩定版

以上,安装自建RSSHub就完成了。
社交平台這邊有不少模塊需要申請調用API,具體看這裡 部分 RSS 模块配置
至于如何想自己額外构建添加RSS路由可以参考这个文档 

ins到是不需要申請API,我自建就是為了ins搭建自用的,所以別的就沒弄
以後看情況會慢慢部署配置好個人需要用的模塊吧 w
twitter我直接用的 rsshub 演示鏈接的,微博的RSS我用的 weibo to rss 這個網站的
订阅ins内容的时候要注意刷新频率不要过快


One Comments

发表评论