Как скачать с 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 в свете другого поста.