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

117

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

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

  • 0
    Даже если вы хотите скачать php, это невозможно с помощью wget. Мы можем получить только сырой HTML, используя wget. Я думаю, вы знаете причину
  • 0
    NB: Всегда сначала проверяйте с помощью wget --spider и всегда добавляйте -w 1 (или больше -w 5 ), чтобы не затопить сервер другого человека.
Показать ещё 2 комментария
Теги:
wget
download

8 ответов

185
Лучший ответ

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

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 будут автоматически удалены.

  • 14
    Если вы просто хотите загружать файлы без целой архитектуры каталогов, вы можете использовать опцию -nd .
  • 2
    что означает каждый из флагов?
Показать ещё 5 комментариев
66

Загрузите для меня весь веб-сайт:

wget --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla http://site/path/
  • 18
    +1 для -e robots=off ! Это наконец исправило мою проблему! :) Спасибо
  • 9
    Опция --random-wait гениальна;)
Показать ещё 5 комментариев
65
wget -m -p -E -k -K -np http://site/path/

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

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

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

Я пытался загрузить 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 и т.д.:

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

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

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

4

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

wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL
2
wget -m -A * -pk -e robots=off www.mysite.com/

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

2

В системах Windows, чтобы получить wget, вы можете

Ещё вопросы

Сообщество Overcoder
Наверх
Меню