Корзинка
Количество просмотров: 176

Регулярки в wget — очень просто!

В wget есть такой параметр как --accept-regex, в него подставляется регулярка, которая соответствует полному адресу, по которому будет лазить программа. И так..

Задача: скачать дистрибутивы thunderbird’a вот отсюда: http://download.cdn.mozilla.net/pub/thunderbird/releases/38.4.0/ . Так как мозилла анонсирована отказ от этого продукта.. дабы не иметь изуродованной «наследниками» версии, я хочу сохранить оригинал.

Там несколько вариантов систем и туча языков. Так что вариант wget --mirror --no-parent -k не прокатит, так как место, как и Москва — «нерезиновые».

В итоге качаем только выбранные языки: английский, французский, русский, итальянский и немецкий, что соответствует папкам с именами en-GB, fr, ru, it и de. Так же качаем и исходники из папки source.

В итоге регулярка будет выглядеть вот так:

^.*/38\.4\.0/(source/)|((linux-i686|linux-x86_64|win32|mac)(/en-GB|/fr|/ru|/it|/de|/$)).*?$

. Отмечу важный момент: /$ в группе, так как на сервере мозиллы листинг папок, и нам надо получить ссылки на то, что в папках, поэтому мы запрашиваем так же и их корень.

Итого:

wget --limit-rate=12M --mirror --no-parent -k --regex-type pcre -R index.html --accept-regex '^.*/38\.4\.0/(source/)|((linux-i686|linux-x86_64|win32|mac)(/en-GB|/fr|/ru|/it|/de|/$)).*?$' http://download.cdn.mozilla.net/pub/thunderbird/releases/38.4.0/

, где мы ограничили скорость в 12 метров в секунду, делаем локальную копию, наверх не лезем, указали тип регулярок pcre, запрещаем сохранять index.html (иначе листинг будет в каждой директории), затем указали нашу регулярку и путь для парсинга и скачивания.

 

Удачи!

Facebooktwittergoogle_plusredditpinterestlinkedintumblrFacebooktwittergoogle_plusredditpinterestlinkedintumblr

Comments are closed.