このオープンソース ツールを使用すると、あらゆる Web サイトを Linux 上のフォルダーとしてマウントできます
通常、Web サイトはブラウザー内に存在し、ページ間を移動したり、画像を開いたり、ファイルを個別にダウンロードしたりします。 Linux では、HTTPDirFS は、FUSE を介して HTTP サーバーをファイルシステムとしてマウントすることにより、Web コンテンツにアクセスする別の方法を提供します。その後、コンピュータに保存されているファイルを参照するのと同じように、ファイル マネージャーを通じて公開されたリソースを参照できます。
書籍リスト、表紙画像、カテゴリ ページが満載の Web サイトで HTTPDirFS を試してみました。設定方法とわかったことは次のとおりです。
HTTPDirFS の使用を開始する方法
HTTPDirFS を使用する理由
HTTPDirFS は、次のようなツールに代わるものではありません。 wget、 curl、または専用のスクレイピング ユーティリティ。私もスクレイピング ツールを自分で構築したことがあるので、Web サイトをファイル システムとしてマウントすることが最初は不必要に思える理由を理解しています。ディレクトリ全体をダウンロードせずに、リモート ファイルを参照して選択したアイテムを取得する場合、その価値はより明確になります。
HTTPDirFS は、r/OpenDirectories サブレディットで共有されているオープン ディレクトリを参照する場合に特に便利です。これらのディレクトリには、何千もの画像、ドキュメント、ビデオ、その他のファイルを含めることができます。すべてをダウンロードしていくつかのアイテムを取得する代わりに、リモート ディレクトリをマウントし、ローカル ファイルであるかのようにそのコンテンツを参照し、必要に応じて個々のアイテムにアクセスできます。
HTML ページがリモート メディアやドキュメントにリンクしている場合も、同じアプローチが役に立ちます。ページを取得し、そのリンクを解析し、すべてのリソースをダウンロードするスクリプトを作成する代わりに、HTTPDirFS を使用して、ファイル システム パスを通じて検出したリソースを公開できます。シェル コマンドとファイル指向のアプリケーションは、これらのパスを使用して動作できるようになります。スクリプトでは、リソースの名前と編成方法を考慮する必要がある場合があります。
パッケージ版では試したい Web サイト モードの動作が提供されないため、開発版を使用しました。まず、プロジェクトに必要なビルド ツールと開発ライブラリをインストールします。
sudo apt update
sudo apt install git build-essential meson ninja-build \
libfuse3-dev libcurl4-openssl-dev libgumbo-dev
依存関係はリポジトリのバージョンによって異なる場合があるため、Meson が不足しているライブラリを報告する場合はプロジェクトの手順を確認してください。 HTTPDirFS リポジトリのクローンを作成し、そのソース ディレクトリを入力します。
git clone https://github.com/fangfufu/httpdirfs.git
cd httpdirfs
すでにソース チェックアウトがある場合は、代わりにそのディレクトリを使用できます。次に、プロジェクトを構成してコンパイルします。
meson setup build
meson compile -C build
コンパイルされた実行可能ファイルは次の場所から入手できます。 build/httpdirfs。 Web サイトをマウントする前に、バージョンと利用可能なコマンドライン オプションを確認してください。
./build/httpdirfs --version
./build/httpdirfs --help
私の開発ビルドでは HTTPDirFS バージョン 1.3.3 が報告されました。この実験の重要なオプションは、 --website-mode。リソースを次のように提示します。 text/html コンテンツ タイプをディレクトリとして作成し、リンクされたメディアやその他のアセットをファイル システムを通じて利用できるようにします。 Web サイト モードはデフォルトで無効になっているため、明示的に有効にする必要があります。
HTTPDirFS を使用して Web サイトをマウントする
Web サイト モードを有効にしてそのリソースを参照する
Books to Scrape を選択したのは、そのページに本のタイトル、カテゴリ リンク、表紙画像、その他の Web アセットが含まれているためです。これにより、HTTPDirFS が HTML ページとその参照リソースをどのように処理するかをテストする便利な方法が得られました。
まず、ホーム ディレクトリに専用のマウント ポイントを作成しました。
mkdir -p "$HOME/HTG-Test"
HTTPDirFS ソース ディレクトリから、Web サイト モードを有効にして開発実行可能ファイルを開始しました。
./build/httpdirfs --website-mode -f \
https://books.toscrape.com/ "$HOME/HTG-Test"
の -f オプションを使用すると、HTTPDirFS がフォアグラウンドで実行され続けるため、テスト中にその端末出力を検査できるようになります。 HTTPDirFS が最初のページを処理した後、 HTG-Test ファイルマネージャーのマウントポイント。マウントされたファイルシステムは、本のカテゴリと個々のリストの HTML ページと、Web サイトが参照する表紙画像やその他の資産を公開しました。一部の HTML ページはディレクトリとして表示され、各ページに関連付けられたリソースを参照できました。
最初に Web サイト全体をダウンロードしなくても、カテゴリを参照したり、個々の本のリストを調べたり、表紙画像を開いたりすることができました。これが HTTPDirFS の主な利点です。アプリケーションは、通常のファイル システム パスを通じて検出したリソースにアクセスできます。
結果は、Web サイトと HTTPDirFS が検出するリソースによって異なります。 JavaScript で生成されたコンテンツや複雑なインタラクションに依存する Web サイトでは、ブラウザーがアクセスできるすべてが公開されるわけではありません。認証オプションは保護されたリソースに役立つ場合がありますが、HTTPDirFS は完全なブラウザ エンジンを提供しません。そのファイルシステム ビューは、HTML の構造と各ページが参照するリソースにも依存します。
すべてをダウンロードせずにリモート ファイルにアクセスする
専用のスクレイピング ツールは引き続き構造化データの抽出や複雑な Web サイトに適しています。 wget および HTTrack は、オフラインで使用するミラーリング サイトに適しています。 HTTPDirFS は、通常のファイル システム アプリケーションが使用できるパスを通じて、検出されたリモート リソースにアクセスできるようにすることで、より狭い目的を果たします。
HTTPDirFS は、公開ファイルのリストを定期的に閲覧する場合や、リモート Web サイトから選択した画像やドキュメントにアクセスしたい場合に試してみる価値があります。また、FUSE を実験し、使い慣れた Linux ツールを使用してリモート コンテンツに関するワークフローを構築する実用的な方法も提供します。
関連情報は以下のリンクからご確認いただけます