
При использовании wget с включенной опцией рекурсии я получаю сообщение об ошибке, когда он пытается загрузить файл. Он думает, что ссылка — это загружаемый файл, когда на самом деле он должен просто перейти по ней, чтобы попасть на страницу, которая на самом деле содержит нужные мне файлы (или больше ссылок для перехода).
wget -r -l 16 --accept=jpg website.com
Сообщение об ошибке: .... поскольку он должен быть отклонен. Обычно это происходит, когда ссылка на веб-сайт, которую он пытается получить, заканчивается оператором SQL. Однако проблема не возникает при использовании той же команды wget по этой ссылке. Я хочу знать, как именно он пытается получить страницы. Думаю, я всегда могу покопаться в источнике, хотя я не знаю, насколько запутан проект. Я также могу упустить из виду, что именно означает «рекурсивный» в контексте wget. Я думал, что он будет проходить и перемещаться по каждой ссылке, получая файлы с запрошенным мной расширением.
Я опубликовал это на stackOverFlow, но здесь меня перевернули:) Надеюсь, вы, ребята, сможете помочь.
EDIT: Вывод сообщения об ошибке
2010-04-13 16:54:47 (128 KB/s) - `somewebsite.com/index.php?id=917218' saved [10789]
Removing somewebsite.com/index.php?id=917218 since it should be rejected.
Я предпочитаю не раскрывать источник сайта :)
решение1
Как отметил Хью Аллен, использование just --accept=jpg
заставит wget загрузитьтолькофайлы с расширением .jpg (и .htm, .html, которые всегда извлекаются). Вот почему wget говорит вам, что удалит файл php. Так что попробуйте использовать --accept=jpg,php
или подобный.
Смотритеруководство wgetдля получения подробной информации. Я рекомендую вам прочитать его, так как он подробно объясняет весь механизм принятия/отклонения.
решение2
«Может быть» --accept=jpg
означает отвергнуть все остальное.