9

Как бы мне загрузить список файлов с файлового сервера, например, http://www.apache.org/dist/httpd/binaries/ ?

Я полагаю, я мог бы использовать wget, но затем он пытается получить все ссылки и HTML-файл. Есть ли лучший инструмент для достижения этой цели?

3 ответа3

12

Вы можете указать, какие расширения файлов wget будет загружать при сканировании страниц:

wget -r -A zip,rpm,tar.gz www.site.com/startpage.html

это выполнит рекурсивный поиск и загрузит файлы только с расширениями .zip , .rpm и .tar.gz .

8

Предположим, вы действительно хотите получить список файлов на сервере, не загружая их (пока):

%> wget -r -np --spider http://www.apache.org/dist/httpd/binaries/ 2> & 1 | awk -f filter.awk | уник

в то время как «filter.awk» выглядит так

/^--.*--  http:\/\/.*[^\/]$/ { u=$3; }
/^Length: [[:digit:]]+/ { print u; }

тогда вам, возможно, придется отфильтровать некоторые записи, такие как

"http://www.apache.org/dist/httpd/binaries/?C=N;O=D"
0

Ссылка: http://blog.incognitech.in/download-files-from-apache-server-listing-directory/

Вы можете использовать следующую команду:

wget --execute="robots = off" --mirror --convert-links --no-parent --wait=5 <website-url>

Пояснения к каждому варианту

  • wget: простая команда для отправки запроса CURL и загрузки удаленных файлов на наш локальный компьютер.
  • --execute="robots = off": Это будет игнорировать файл robots.txt при сканировании страниц. Это полезно, если вы не получаете все файлы.
  • --mirror: эта опция в основном будет отражать структуру каталогов для данного URL. Это сокращение для -N -r -l inf --no-remove-listing которое означает:
    • -N: не восстанавливать файлы, если они не новее локальных
    • -r: указать рекурсивную загрузку
    • -l inf: максимальная глубина рекурсии (inf или 0 для бесконечного)
    • --no-remove-listing list: не удалять файлы '.listing'
  • --convert-links: ссылки в загруженном HTML или CSS указывают на локальные файлы
  • --no-parent: не подниматься в родительский каталог
  • --wait=5: подождать 5 секунд между поисками. Чтобы мы не трогали сервер.
  • <website-url>: это URL-адрес веб- сайта, с которого можно скачивать файлы.

Счастливого скачивания:smiley:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .