banner
DIYgod

Hi, DIYgod

写代码是热爱,写到世界充满爱!
github
twitter
bilibili
telegram
email
steam
playstation
nintendo switch

Cloudflare WARP を利用して、RSSHub のスクレイピング防止に対処する方法

🕊️ よりオープンなインターネットへの本文送り


きっかけは、@geekbb さんが Warp について紹介したtweetを見たことです。Warp は長い間リリースされていますが、IP プライバシーの保護に関しては iCloud Private Relay ほど便利ではありませんし、私自身もマジックインターネットへのニーズはありませんでした。しかし、IP を隠す必要があることに気づきました。

RSSHub の開発の数年間で、公共の API を提供しているサイトは非常に少ないことがわかりました。多くのサイトでは、プラットフォームのコンテンツの取得を制限するために厳格なスクレイピング制御を採用しています。一部のサイトでは、同じ IP からのリクエストが多すぎるとブロックされる場合があり、他のサイトでは一般的なクラウドサーバープロバイダーの IP アドレスを完全にブロックしています。そのため、最新の数件のコンテンツ更新を取得するだけでも非常に困難になってしまいます。

lord-of-the-rings-my-precious

このような場合、プロキシを使用する必要がありますが、専用のウェブスクレイピングプロキシは通常高価でコストパフォーマンスが非常に低いです。RSSHub が Cloudflare WARP の無制限のトラフィックと豊富な IP リソースを利用できれば素晴らしいです。RSSHub はすでに一般的なプロキシプロトコルをサポートしており、WARP を一般的なプロキシにラップするだけで利用できます。

image

公式クライアントをコマンドライン環境で直接使用することはできませんが、このようなアイデアは他の人によってすでに実装されているはずです。私は GitHub でラップされた Docker を見つけました。

そして、RSSHub のdocker-compose.ymlにこのようなサービスを追加するだけでプロキシサービスを有効にすることができます。

warp-socks:
    image: monius/docker-warp-socks:latest
    privileged: true
    volumes:
        - /lib/modules:/lib/modules
    cap_add:
        - NET_ADMIN
        - SYS_ADMIN
    sysctls:
        net.ipv6.conf.all.disable_ipv6: 0
        net.ipv4.conf.all.src_valid_mark: 1
    healthcheck:
        test: ["CMD", "curl", "-f", "https://www.cloudflare.com/cdn-cgi/trace"]
        interval: 30s
        timeout: 10s
        retries: 5

最後に、RSSHub に PROXY_URI 環境変数を追加してプロキシを使用します。

PROXY_URI: 'socks5h://warp-socks:9091'

私はよく使う hotukdeals ルート(英国版の何が買い値か)をテストに選びました。このサイトはすべての DigitalOcean の IP をブロックしているため、常に 403 の状態になっています。

image

WARP を追加すると、正常にアクセスできます。

image

さらに、WARP を再起動するたびに新しい IP が出力されることに気づきました。時間がないため検証することはできませんが、IP は頻繁に自動的に変更されるはずであり、これはスクレイピングの問題の解決にとって良いニュースです。

image

さらに、WireGuard の設定をカスタマイズすることもできます。有料版の WARP + やカスタムエンドポイントを使用して、より良い結果を得ることができます。

WireGuard の設定ファイルの生成には、次のリンクを使用できます。

WARP + トラフィックのリフレッシュとエンドポイントのフィルタリングには、次のリンクを使用できます。

WARP + の速度には明確な違いがないという意見もありますが、スクレイピングの効果にはさらなる検証が必要です。

すべてが順調にいけば、RSSHub の公式インスタンスで厳格なスクレイピングのルートを再利用できるはずです。数日以内に検証し、ここで更新します。

image

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。