Как скачать с wget без следующих ссылок с параметрами

Я пытаюсь скачать два сайта для включения в CD:

http://boinc.berkeley.edu/trac/wiki
http://www.boinc-wiki.info

У меня проблема в том, что это оба вики. Таким образом, при загрузке, например:

wget -r -k -np -nv -R jpg,jpeg,gif,png,tif http://www.boinc-wiki.info/

Я получаю много файлов, потому что он также следует по таким ссылкам, как...? Action=edit ...? Action=diff&version=...

Кто-нибудь знает способ обойти это?

Я просто хочу текущие страницы, без изображений, без различий и т. Д.

PS:

wget -r -k -np -nv -l 1 -R jpg,jpeg,png,gif,tif,pdf,ppt http://boinc.berkeley.edu/trac/wiki/TitleIndex

Это сработало для Беркли, но boinc-wiki.info все еще доставляет мне проблемы: /

PPS:

Я получил то, что кажется наиболее релевантными страницами с:

wget -r -k -nv  -l 2 -R jpg,jpeg,png,gif,tif,pdf,ppt http://www.boinc-wiki.info

6 ответов

wget --reject-regex '(.*)\?(.*)' http://example.com

(--reject-type posix по умолчанию). Работает только для последних (>=1.14) версий wget хотя, согласно другим комментариям.

Остерегайтесь, кажется, вы можете использовать --reject-regex только один раз за wget вызов. То есть вы должны использовать | в одном регулярном выражении, если вы хотите выбрать несколько регулярных выражений:

wget --reject-regex 'expr1|expr2|…' http://example.com

Документация для wget гласит:

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

Похоже, что эта функциональность уже давно на столе, и с этим ничего не было сделано.

Я не использовал его, но httrack выглядит так, как будто он имеет более надежный набор функций фильтрации, чем wget, и может лучше подходить для того, что вы ищете (о фильтрах читайте здесь http://www.httrack.com/html/fcguide.html).

Новая версия wget (v.1.14) решает все эти проблемы.

Вы должны использовать новую опцию --reject-regex=.... обрабатывать строки запроса.

Обратите внимание, что я не смог найти новое руководство, которое включает в себя эти новые опции, поэтому вы должны использовать команду справки wget --help > help.txt

Похоже, вы пытаетесь избежать загрузки специальных страниц MediaWiki. Я решил эту проблему однажды, избегая index.php страница:

wget  -R '*index.php*'  -r ... <wiki link>

Тем не менее, вики использовали URL-адреса, как видно из Википедии (http://<wiki>/en/Themeа не шаблон, который я видел в других местах (http://<wiki>/index.php?title=Theme). Поскольку ссылка, которую вы дали, использует URL-адреса в шаблоне Википедии, я думаю, что это решение может работать и для вас.

Павук должен уметь это делать:

http://pavuk.sourceforge.net/man.html#sect39

Пример Mediawiki:

[...]

-skip_url_pattern 'oldid =, действие = редактировать, действие = история, дифф =, предел =, [/ =] Пользователь:, [/ =] обсуждения участника:, [^ р] / Special:, = Special: [^ R], .php / Special: [^LUA][^ ОНЛ] [^ NUL], MediaWiki:, Искать:, Помощь:'

[...]

'-R rejlist --reject rejlist' Указать разделенные запятыми списки суффиксов или шаблонов имен файлов для принятия или отклонения (см. Типы файлов). Обратите внимание, что если какой-либо из подстановочных знаков '*', '?', '[' Или ']' появится в элементе acclist или rejlist, он будет рассматриваться как шаблон, а не как суффикс.

Шаблоны, вероятно, то, что вы хотите. Я не уверен, насколько сложные шаблоны, но вы можете попытаться принять только определенные файлы или блокировать:

wget -r -k -np -nv -R jpg,jpeg,gif,png,tif,*\? http://www.boinc-wiki.info/

Accept:

wget -r -k -np -nv -R jpg,jpeg,gif,png,tif -A [a-zA-Z.] http://www.boinc-wiki.info/

Отредактируйте: nvm в свете другого поста.

Другие вопросы по тегам