跳至主要内容

FreshRSS 抓取受 Cloudflare 保護的 Feed

· 閱讀時間約 2 分鐘

問題​

大概半年前,我發現使用 FreshRSS 追蹤的一些 RSS/Atom Feed 會被 Cloudflare 驗證給擋下。

當時的解法是用 Cloudflare Worker 當跳板去抓,雖然偶爾還是會被擋,但是在大多數的情況下是 OK 的。

BUT!最近幾天整個大失效,不論是直連還是跳板都被擋,導致漏掉了許多訂閱的文章。

解決​

今天照關鍵字查了一下,發現 Ivon 的這篇「介紹 FreshRSS 的文章」裡面有解法!

馬上安裝起來,成功解決!

原理是呼叫 Flaresolverr 來開一個「Selenium + undetected-chromedriver」去抓那些被擋掉的 Feed。

提示

部署方式可以參考「這篇筆記」。

額外討論​

缺點是這個擴充套件的 API 可以直接被存取,如果你的 FreshRSS 是直接暴露在 Public 的,就有機會被有心人士濫用,拿去當成 Proxy 跳板。(不曉得機率有多大...)

所以,透過 Tailscale 之類的服務去存取 FreshRSS 可能還是比較安全一點。

或者,你可能需要特別針對擴充套件的 API 設定存取限制。(也太麻煩了吧)

不過,既然已經知道使用 Flaresolverr 可以順利抓到 Feed,那你也完全可以自己寫(AI 寫)一個迷你服務去呼叫 Flaresolverr 抓 Feed,這樣就沒問題啦。

所以我最後怎麼做?當然是什麼也不做,等真的遇到問題再說囉(???)