Использование 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) их все равно всегда отвергают. Есть ли способ обойти это?

7
задан Cerin
27.02.2023 12:47 Количество просмотров материала 3205
Распечатать страницу

4 ответа

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

3
отвечен meoninterwebz 2023-02-28 20:35

как вы ожидаете, что 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 2023-02-28 22:52

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

0
отвечен TiansHUo 2023-03-01 01:09

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

-1
отвечен 2023-03-01 03:26

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

bash
linux
script
web-crawler
wget
Вверх