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

Проверьте, соответствуют ли какие-либо параметры скрипта bash строке
Массовая очистка параметров URL из txt-файла
Получить тело ответа и показать HTTP код curl
Что такое домашний каталог подсистемы Windows для Linux?
Копировать всех пользователей.история bash на одном дыхании
команда rm: удалить файлы с именами, содержащими скобки
Как установить NIC в беспорядочном режиме на Mac book air?
"read" работает как ожидалось в ZSH, но ведет себя по-другому при использовании любой другой оболочки
Параллельное выполнение команд с ограничением количества одновременных команд
bash:/home/пользователь/.bashrc: отказано в разрешении при попытке изменить пользователя с root на user
чтение команды с таймаутом для нетерминального ввода в bash
Ошибка шпатлевки: операция / bin / bash не разрешена при подключении к Cygwin sshd
Как использовать faketime в bash?
Почему я получаю "rvm: команда не найдена" на Ubuntu?
В Linux, как удалить папку с более чем 1 миллионом файлов?

Использование wget для рекурсивного обхода сайта и загрузки изображений

Как вы указываете wget рекурсивно сканировать веб-сайт и загружать только определенные типы изображений?

Я попытался использовать это для обхода сайта и загрузки только изображений Jpeg:

wget --no-parent --wait=10 --limit-rate=100K --recursive --accept=jpg,jpeg --no-directories http://somedomain/images/page1.html

Впрочем, даже если страница1.html содержит сотни ссылок на подстраницы, которые сами имеют прямые ссылки на изображения, wget сообщает такие вещи, как " удаление подзаголовка13.HTML-код так как он должен быть отклонен", и не загружает все картинки, так как никто напрямую связаны с стартовая страница.

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

редактировать: также, некоторые страницы динамические и генерируются через CGI скрипт (напр. img.cgi?fo9s0f989wefw90e). Даже если я добавлю cgi в свой список принятия (например, --accept=jpg, jpeg, html, cgi) их все равно всегда отвергают. Есть ли способ обойти это?

5
задан Cerin
источник

4 ответов

Почему бы вам не попробовать использовать с wget -в JPG,формате JPEG -Р http://site.com ?

3
отвечен meoninterwebz 2011-10-18 20:10:37
источник

как вы ожидаете, что wget будет знать содержимое подзаголовка13.html (и так jpg, на который он ссылается), если его не разрешено загружать. Я предлагаю вам разрешить html, получить то, что вы хотите, а затем удалить то, что вы не хотите.


Я не совсем уверен, почему ваши cgi получают отклонены... есть ли какие-либо ошибки вывода wget? Возможно, сделать wget многословным (-v) и посмотреть. Может, лучше задать отдельный вопрос.

тем не менее, если вам все равно пропускная способность и скачать много затем удалить то, что вы не хотите после, это не имеет значения.


также проверить --html-extension

со страницы man:

- E

--html-расширение

Если загружается файл типа application/xhtml+xml или text/html и URL-адрес не заканчивается регулярным выражением .[Hh][Tt][Mm][Ll]?, эта опция будет причина суффикс .html, добавляемый к локальному имени файла. Это полезно, например, при зеркальном отражении удаленного сайта, который использует .гадюка страниц, но вы хотите, чтобы зеркальные страницы были доступны для просмотра на вашем сервере Apache. Еще одно хорошее применение для этого, когда youâre загрузки CGI-gener- атед материалы. URL-адрес, как http://site.com/article.cgi?25 будут сохранены в качестве статьи.cgi?25.формат HTML.

обратите внимание, что имена файлов, измененные таким образом, будут повторно загружены каждый раз, когда вы повторно зеркально отражаете сайт, потому что Wget не может сказать, что локальный X.html папка соответствует удаленному URL X (т. к. он еще не знает, что URL выдает вывод типа text/html или application/xhtml+xml. Помешать этому при повторной загрузке необходимо использовать-k и-K, чтобы исходная версия файла была сохранена как X. orig.


--restrict-file-names=unix также может быть полезно из-за этих cgi url...

1
отвечен PriceChild 2013-03-07 11:01:18
источник

вы также можете использовать Metaproducts Offline Explorer без программирования

0
отвечен TiansHUo 2013-01-14 03:44:42
источник

попробуйте добавить --page-requisites опции

-1
отвечен 2011-03-29 15:39:58
источник

Другие вопросы bash linux script web-crawler wget