ЗАВИХРИТЕСЬ для загрузки каталога

Я пытаюсь загрузить полный каталог веб-сайта с помощью ЗАВИХРЕНИЯ. Следующая команда не работает:

curl -LO http://example.com/

Это возвращает ошибку: curl: Remote file name has no length!.

Но когда я делаю это: curl -LO http://example.com/someFile.type работает. Какая-либо идея, как загрузить все файлы в указанном каталоге? Спасибо.

38
задан 14.10.2014, 09:59

2 ответа

HTTP действительно не имеет понятия каталогов. Наклонные черты кроме первых трех (http://example.com/) не имейте никакого особого значения кроме относительно .. в относительных URL. Таким образом, если сервер не следует за конкретным форматом, нет никакого способа “загрузить все файлы в указанном каталоге”.

Если Вы хотите загрузить целый сайт, Ваш лучший выбор состоит в том, чтобы пересечь все ссылки на основной странице рекурсивно. Завихрение не может сделать, оно, но wget может. Это будет работать, если веб-сайт не будет слишком динамичным (в частности, то wget не будет видеть ссылки, которые создаются кодом JavaScript). Запустите с wget -r http://example.com/, и посмотрите под “Рекурсивными Опциями Извлечения”, и “Рекурсивный Принимают/Отклоняют Опции” в wget руководстве для более соответствующих опций (глубина рекурсии, списки исключения, и т.д.).

Если веб-сайт пытается заблокировать автоматизированные загрузки, Вы, возможно, должны изменить строку агента пользователя (-U Mozilla), и проигнорировать robots.txt (создайте пустой файл example.com/robots.txt и используйте -nc опция так, чтобы wget не пытался загрузить его с сервера).

32
ответ дан 07.12.2019, 08:49

Это не возможно. Нет никакого стандарта, обычно реализовываемого, путь к веб-серверу для возврата содержания каталога Вам. Большинство серверов действительно генерирует индекс HTML каталога, если настроено, чтобы сделать так, но этот вывод не является стандартным, ни гарантируемый каким-либо образом. Вы могли проанализировать этот HTML, но иметь в виду, что формат изменится с сервера на сервер и будет не всегда включаться.

5
ответ дан 07.12.2019, 08:49

Теги

Похожие вопросы