-
Умеет скачивать HTML-страницы, сохранять их локально, а также рекурсивно скачивать ресурсы: CSS, JS, изображения и т.д., а так же страницы, на которые есть ссылки (в рамках того же домена).
-
На выходе получается локальный каталог, содержащий копию сайта (или его части), страницу можно открыть офлайн.
-
Обрабатываются различные нюансы: относительные и абсолютные ссылки, дублирование (один и тот же ресурс не скачивается несколько раз), корректно формируются локальные пути для сохранения, избегаются зацикливания по ссылкам.
-
Поддерживает параллельное скачивание.
-u- URL страницы для скачивания. Обязательный флаг;-d- Глубина рекурсии. Опциональный флаг, по умолчанию - 1;-n- Максимальное количество одновременных загрузок. Опциональный флаг, по умолчанию - 5;-t- Таймаут в секундах для HTTP-клиента. Опциональный флаг, по умолчанию - 30;
Для удобства можем выполнить(в примере запускаю так):
go build -o mywget main.go
Используем:
./mywget -u https://go.dev/doc/
Получаем директорию go.dev, в которой:

Множество директорий, перейдем в одну из них:

Видим саму копию страницы и необходимые картинки.
CSS и JS файлы также скачиваются, страницы их используют.
![]()
В страницах ссылки замененены на относительные локальные, поэтому по ним можно переходить.