Загрузите произвольное количество файлов с помощью wget из каталога для самостоятельной перенаправления

Мне нужно загрузить очень большое количество PDF-файлов (было бы утомительно, если не невозможно собрать и сопоставить все ссылки) с моего веб-сайта университета с помощью wget, со ссылками вроде этого:

http://example.edu/path_to_directory/directory/foobar.pdf 

Я использую следующую команду:

 wget -mk --no-check-certificate --load-cookies cookies.txt http://example.edu/arbitrary_link_to_directory/directory/ 

К сожалению, фактические каталоги, содержащие pdf-файлы, перенаправляются на страницу с ошибкой, и все, что я получаю, это куча html и css-файлов.

 http://example.edu/path_to_directory/directory/ 

будет в браузере перенаправить один на

 http://example.edu/path_to_directory/error/error.html 

Можно ли загружать все файлы, о которых идет речь, используя wget?

2 Solutions collect form web for “Загрузите произвольное количество файлов с помощью wget из каталога для самостоятельной перенаправления”

Когда я хочу загрузить кучу файлов с веб-сайта, который не упрощает (или активно затрудняет), я генерирую список URL-адресов файлов с чем-то вроде этого:

lynx -dump -listonly $URL | awk '/\.pdf/ {print $2}' > /tmp/pdflist.txt

Затем я обычно редактирую файл с vi чтобы удалить записи, которые я не хочу загружать, и, наконец, вытащить их с помощью wget:

wget --input-file=/tmp/pdflist.txt

Это хорошо работает для простых задач и часто работает достаточно хорошо для умеренно сложных задач … но для сложных задач, связанных с разбором запутанных html и следующих ссылок (и, возможно, с использованием файлов cookie), я напишу web-робот perl используя libwww-perl модуль (он же LWP ).

На вашем веб-сайте университета есть страница, содержащая ссылки на все файлы PDF? Или как вы знаете список имен файлов PDF?

В этом случае вам нужно будет написать скрипт под названием scraper, чтобы программно получить ссылки с этой страницы, а затем автоматически пропустить этот список и загрузить их с помощью wget или другого инструмента. Я бы предложил PHP или Python написать скребок. Вы сможете легко управлять возможной разбивкой по страницам на веб-сайте происхождения. Если вы используете PHP, вы можете просто скачать файлы с помощью

file_put_contents ('destination_filename', file_get_contents ('source_url');

  • установка dropbox (для просмотра файлов)
  • Как использовать wget для загрузки с хостинговых сайтов?
  • Проблема с загрузкой большого файла из Интернета
  • Почему curl -O -C на Mac не загружается
  • Изменение разрешений по умолчанию для wget?
  • Auth через wget работает, но не может перемещаться по веб-странице после него
  • Как узнать, загружен ли файл wget?
  • Как загрузить openSUSE 12.1 через `wget -c`?
  • wget on Centos 7 Terminal как загрузить только текст без кода стиля сайта
  • routing wget --recursive для stdout (как в -O -), а не файл
  • wget не поддерживает https
  • Linux и Unix - лучшая ОС в мире.