Обычно вебсайты открываются в браузере, где для перехода между страницами, просмотра изображений и загрузки файлов используются отдельные инструменты. В Linux существует альтернативный способ работы с веб-ресурсами: HTTPDirFS позволяет монтировать HTTP-сервер как файловую систему с помощью FUSE. После этого содержимое сайта можно просматривать через файловый менеджер почти так же, как обычные файлы, хранящиеся на компьютере.
HTTPDirFS является инструментом с открытым исходным кодом, который преобразует доступные через HTTP веб-ресурсы в файловую структуру. Его предназначение заключается не в полной загрузке сайта на локальный диск, а в предоставлении доступа к отдельным страницам, изображениям и другим ресурсам без необходимости загружать все содержимое.
Для чего нужен HTTPDirFS
HTTPDirFS не заменяет такие инструменты, как wget, curl или специализированные средства веб-скрейпинга, поскольку каждый из них рассчитан на отдельные сценарии использования. Однако монтирование сайта в качестве файловой системы может быть удобно, если требуется просмотреть удаленные файлы и получить только выбранные материалы, не загружая весь каталог.
Особенно полезен этот подход для работы с открытыми файловыми каталогами, ссылками на которые пользователи делятся, в частности, в сообществе r/OpenDirectories на Reddit. Такие каталоги иногда содержат тысячи изображений, документов, видео и других файлов. Вместо загрузки всего содержимого для нескольких нужных материалов можно смонтировать удаленный каталог, просмотреть его через файловый менеджер и получить доступ к отдельным файлам при необходимости.
Подобный принцип можно применять и к веб-страницам, содержащим ссылки на удаленные файлы мультимедиа и документы. Вместо написания скрипта, который будет загружать страницу, анализировать ссылки и получать все найденные ресурсы, можно использовать HTTPDirFS, чтобы представить обнаруженные материалы в виде путей файловой системы. После этого с ними могут работать команды и программы, рассчитанные на работу с файлами. В то же время, для автоматизированной обработки иногда все равно нужно учитывать особенности наименования и организации ресурсов.
Как установить HTTPDirFS в Linux
Для проверки возможностей HTTPDirFS использовалась версия для разработчиков, поскольку доступная в пакетах версия не обеспечивала требуемый режим работы с сайтами. Для сборки программы исходного кода сначала необходимо установить инструменты компиляции и необходимые библиотеки.
В дистрибутивах на основе Debian или Ubuntu это можно сделать с помощью следующих команд:
sudo apt update
sudo apt install git build-essential meson ninja-build \
libfuse3-dev libcurl4-openssl-dev libgumbo-dev
Набор зависимостей зависит от версии проекта и репозиториев конкретного дистрибутива. Если Meson сообщит об отсутствующей библиотеке, необходимо проверить инструкции по сборке, предоставленные разработчиками HTTPDirFS.
Следующий шаг заключается в загрузке исходного кода из репозитория GitHub и переходе в каталог проекта:
git clone https://github.com/fangfufu/httpdirfs.git
cd httpdirfs
Если исходный код уже загружен, повторно клонировать репозиторий не нужно: достаточно перейти в существующий каталог.
После этого проект необходимо настроить и скомпилировать:
meson setup build
meson compile -C build
После завершения компиляции исполняемый файл будет доступен по пути build/httpdirfs. Перед монтажом сайта следует проверить версию программы и перечень доступных параметров командной строки:
./build/httpdirfs --version
./build/httpdirfs --help
В проверяемом сборнике для разработчиков отображалась версия HTTPDirFS 1.3.3. Ключевым параметром для работы с сайтами оказался --website-mode.
Этот режим позволяет представлять ресурсы с типом содержимого. text/html в виде каталогов, а связанные с ними медиафайлы и другие ресурсы делать доступными через файловую систему. По умолчанию режим работы с сайтами отключен, поэтому его нужно активировать явно.
Как смонтировать сайт с помощью HTTPDirFS
Включение режима работы с сайтами и просмотр ресурсов
Для проверки программы был выбран сайт Books to Scrape, содержащий страницы со списками книг, ссылками на категории, изображениями обложек и другими веб-ресурсами. Такая структура позволяет проверить, как HTTPDirFS обрабатывает HTML-страницы и материалы, на которые они ссылаются.
Сначала нужно создать отдельный каталог в домашней директории пользователя, который будет использоваться в качестве точки монтирования:
mkdir -p "$HOME/HTG-Test"
Затем, находясь в каталоге с исходным кодом HTTPDirFS, необходимо запустить скомпилированную программу с включенным режимом работы с сайтами:
./build/httpdirfs --website-mode -f \
https://books.toscrape.com/ "$HOME/HTG-Test"
Параметр -f оставляет HTTPDirFS запущенным на переднем плане. Это позволяет наблюдать за сообщениями в терминале при проверке работы программы.
После начальной обработки страницы создан каталог HTG-Test можно открыть в файловом менеджере. Смонтированная файловая система предоставляет доступ к HTML-страницам категорий и отдельных книг, а также к изображениям обложек и другим ресурсам, на которые ссылается сайт. Некоторые HTML-страницы отображаются как каталоги, позволяющие просматривать связанные с ними материалы.
В результате можно переходить между категориями, просматривать страницы отдельных книг и открывать изображения обложек, не загружая предварительно весь сайт. Основное преимущество HTTPDirFS состоит в том, что обнаруженные ресурсы становятся доступными через обычные пути файловой системы, с которыми могут работать совместимые программы.
В то же время, результат зависит от структуры конкретного сайта и ресурсов, которые HTTPDirFS способен обнаружить. Сайты, содержимое которых формируется с помощью JavaScript или предполагает сложное интерактивное взаимодействие, могут не предоставлять через этот инструмент все материалы, доступные в браузере. Параметры аутентификации могут помочь при работе с защищенными ресурсами, однако HTTPDirFS не является полноценным браузерным двигателем. Представление сайта в виде файловой системы также зависит от структуры HTML-документов и ресурсов, на которые они ссылаются.
Для извлечения структурированных данных и работы со сложными сайтами специализированные инструменты веб-скрейпинга остаются более подходящим выбором. Если требуется создание локальной копии сайта для дальнейшей работы без подключения к сети, для этого лучше подходят wget и HTTrack.
HTTPDirFS решает более узкую задачу: он делает обнаруженные удаленные ресурсы доступными через пути, с которыми могут работать обычные программы для работы с файловой системой. Это позволяет просматривать веб-содержимое и получать доступ к выбранным материалам без необходимости загружать все сразу.
Инструмент может быть полезен для регулярного просмотра открытых файловых каталогов, поиска отдельных изображений и документов на удаленных сайтах, а также создания рабочих процессов на основе привычных инструментов Linux. Кроме того, HTTPDirFS можно использовать для практического изучения FUSE и способов интеграции удаленных ресурсов в локальную файловую среду.
Следовательно, HTTPDirFS не превращает любой вебсайт в полноценную локальную копию и не обеспечивает возможности браузера, однако предлагает альтернативный способ доступа к вебресурсам. Если задача состоит в просмотре удаленных файлов и выборочном получении нужных материалов, монтаж сайта как файловой системы может упростить работу и избавить от необходимости загружать лишние данные.










