FreshRSS 抓取受 Cloudflare 保護的 Feed
· 閱讀時間約 2 分鐘
問題
大概半年前,我發現使用 FreshRSS 追蹤的一些 RSS/Atom Feed 會被 Cloudflare 驗證給擋下。
當時的解法是用 Cloudflare Worker 當跳板去抓,雖然偶爾還是會被擋,但是在大多數的情況下是 OK 的。
BUT!最近幾天整個大失效,不論是直連還是跳板都被擋,導致漏掉了許多訂閱的文章。
解決
今天照關鍵字查了一下,發現 Ivon 的這篇「介紹 FreshRSS 的文章」裡面有解法!
- 安裝擴充套件「FreshRSS Flaresolverr Extension」
馬上安裝起來,成功解決!
原理是呼叫 Flaresolverr 來開一個「Selenium + undetected-chromedriver」去抓那些被擋掉的 Feed。
提示
部署方式可以參考「這篇筆記」。
額外討論
缺點是這個擴充套件的 API 可以直接被存取,如果你的 FreshRSS 是直接暴露在 Public 的,就有機會被有心人士濫用,拿去當成 Proxy 跳板。(不曉得機率有多大...)
所以,透過 Tailscale 之類的服務去存取 FreshRSS 可能還是比較安全一點。
或者,你可能需要特別針對擴充套件的 API 設定存取限制。(也太麻煩了吧)
不過,既然已經知道使用 Flaresolverr 可以順利抓到 Feed,那你也完全可以自己寫(AI 寫)一個迷你服務去呼叫 Flaresolverr 抓 Feed,這樣就沒問題啦。
所以我最後怎麼做?當然是什麼也不做,等真的遇到問題再說囉(???)