Назад | Перейти на главную страницу

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

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

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 = ...

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

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

P.S .:

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 все еще доставляет мне проблемы: /

P.P.S:

Я получил наиболее подходящие страницы с:

wget -r -k -nv  -l 2 -R jpg,jpeg,png,gif,tif,pdf,ppt http://www.boinc-wiki.info
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 (версия 1.14) решает все эти проблемы.

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

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

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

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

Пример Mediawiki:

[...]

-skip_url_pattern ’oldid =, действие = редактировать, действие = история, diff =, limit =, [/ =] Пользователь:, [/ =] User_talk:, [^ p] / Специальное:, = Специальный: [^ R], .php / Special: [^ LUA] [^ onl] [^ nul], MediaWiki:, Поиск:, Помогите:

[...]

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

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

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

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

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

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

Принять:

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

Изменить: nvm в свете другого сообщения.