Как запретить wget загружать списки каталогов Apache в разном порядке?

Как запретить wget загружать списки каталогов Apache в разном порядке?

Я пытаюсь рекурсивно загрузить каталог с помощью этой команды:

wget -r -l2 --no-parent -A "*.pdf" -nd -N -e robots=off http://…

Скрипт выполняется каждые 15 минут, поэтому я хочу максимально сократить запросы. Я увидел, что есть много запросов, ?C=M;O=Aкоторые исходят от кнопок-модификаторов порядка каталогов, таких какИмя,ДатаилиРазмер(пример). Как я могу предотвратить возникновение таких запросов?

решение1

Как указано вОтветна связанный вопрос,документация wgetговорит:

Также обратите внимание, что строки запроса (строки в конце URL, начинающиеся с вопросительного знака ('?')) не включаются в имя файла для правил принятия/отклонения, хотя они фактически будут способствовать выбору имени для локального файла. Ожидается, что в будущей версии Wget будет предоставлена ​​возможность сопоставления со строками запроса.

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

В качестве альтернативы вы можете загрузить каталог с помощью wget и затем отфильтровать его.

find . -name '*\?' -delete
# Here is a less dangerous pattern that matches the string you provided more closely:
find . -name '*\??=?;?=?' -delete

решение2

Я бы использовал httrack, если вы пытаетесь отразить каталог файлов *.pdf. Мне помогла такая команда:

 % httrack http://my.server.com/dir/with/pdfs/ +mime:text/html +*.pdf --update

Дополнительную информацию о httrack можно найти по следующим ссылкам:

Я должен упомянуть одно из главных преимуществ использования httrack по сравнению с wget: httrack будет загружать только те файлы, которые были изменены/обновлены.

Связанный контент