Как загрузить все файлы (кроме HTML) с веб-сайта с помощью wget?

162

Как использовать wgetи получить все файлы с сайта?

Мне нужны все файлы, кроме файлов веб-страниц, таких как HTML, PHP, ASP и т. Д.

Aniruddhsinh
источник
Даже если вы хотите скачать php, это невозможно с помощью wget. Мы можем получить только сырой HTML, используя wget. Я думаю, вы знаете причину
Venkateshwaran Selvaraj
NB: Всегда проверяйте wget --spiderсначала и всегда добавляйте -w 1(или больше -w 5), чтобы не затопить сервер другого человека.
изоморфизм
1
Как я могу скачать все файлы PDF на этой странице? pualib.com/collection/pua-titles-a.html
Stack Overflow - сайт для вопросов программирования и разработки. Этот вопрос кажется не по теме, потому что он не касается программирования или разработки. Смотрите, какие темы я могу задать здесь, в Справочном центре. Возможно, лучше спросить Super User или Unix & Linux Stack Exchange . Также см. Где я могу разместить вопросы о Dev Ops?
17

Ответы:

262

Чтобы отфильтровать по определенным расширениям файлов:

wget -A pdf,jpg -m -p -E -k -K -np http://site/path/

Или, если вы предпочитаете длинные имена вариантов:

wget --accept pdf,jpg --mirror --page-requisites --adjust-extension --convert-links --backup-converted --no-parent http://site/path/

Это будет зеркало сайта, но файлы без jpg или с pdfрасширением будут автоматически удалены.

Жолт Ботыкай
источник
17
Если вы просто хотите загружать файлы без целой архитектуры каталогов, вы можете использовать опцию -nd .
Diabloneo
4
что означает каждый из флагов?
Юрген Павел
Я думаю, что --acceptс учетом регистра, так что вам придется сделать--accept pdf,jpg,PDF,JPG
Flimm
8
не уверен, что это с новой версией, wgetно вы должны указать --progressтип, например--progress=dot
jamis
@Flimm вы также можете использовать --ignore-caseфлаг, чтобы сделать --acceptрегистр нечувствительным.
Суровый
84

Это загрузило весь сайт для меня:

wget --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla http://site/path/
izilotti
источник
20
+1 за -e robots=off! Это наконец исправило мою проблему! :) Спасибо
NHDaly
12
--random-waitВариант гений;)
poitroae
2
@izilotti Может ли владелец сайта узнать, WGET ли файлы их сайта этим методом?
Elias7
1
@whatIsperfect Это определенно возможно.
Джек,
1
@JackNicholsonn Как узнает владелец сайта? Использованным агентом был Mozilla, что означает, что все заголовки будут использоваться как браузер Mozilla, поэтому обнаружение wget как использованного будет невозможно? Пожалуйста, поправьте, если я ошибаюсь. спасибо
Хофи
63
wget -m -p -E -k -K -np http://site/path/

Страница man расскажет вам, что делают эти опции.

wgetбудет только переходить по ссылкам, если на странице индекса нет ссылки на файл, то wgetне будет знать о его существовании и, следовательно, не будет скачивать его. то есть. Это помогает, если все файлы связаны на веб-страницах или в индексах каталогов.

Джесси
источник
Спасибо за ответ :) Он копирует весь сайт, и мне нужны только файлы (например, TXT, PDF, изображения и т. Д.) На сайте
Aniruddhsinh
25

Я пытался скачать zip-файлы, связанные со страницы тем Omeka - довольно похожая задача. Это сработало для меня:

wget -A zip -r -l 1 -nd http://omeka.org/add-ons/themes/
  • -A: принимать только zip-файлы
  • -r: recurse
  • -l 1: один уровень глубоко (т.е. только файлы, напрямую связанные с этой страницей)
  • -nd: не создавайте структуру каталогов, просто загрузите все файлы в этот каталог.

Все ответы с -k, -K, и -Eт.д. варианты , вероятно, не очень понял вопрос, как и те , как и для перезаписи HTML - страниц , чтобы сделать локальную структуру, переименовав.php файлов и так далее. Не имеет значения.

Чтобы буквально получить все файлы, кроме .html etc:

wget -R html,htm,php,asp,jsp,js,py,css -r -l 1 -nd http://yoursite.com
Стив Беннетт
источник
2
-Aчувствителен к регистру, я думаю, так что вам придется сделать-A zip,ZIP
Flimm
7

Вы можете попробовать:

wget --user-agent=Mozilla --content-disposition --mirror --convert-links -E -K -p http://example.com/

Также вы можете добавить:

-A pdf,ps,djvu,tex,doc,docx,xls,xlsx,gz,ppt,mp4,avi,zip,rar

принять определенные расширения или отклонить только определенные расширения:

-R html,htm,asp,php

или исключить конкретные области:

-X "search*,forum*"

Если файлы игнорируются для роботов (например, поисковых систем), вы также должны добавить: -e robots=off

kenorb
источник
5

Попробуй это. У меня всегда работает

wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL
Сунил Кумар
источник
5
wget -m -A * -pk -e robots=off www.mysite.com/

это будет загружать все типы файлов локально и указывать на них из файла HTML, и это будет игнорировать файл роботов

Абдалла Мохамед Али Ибрагим
источник