Читать RSS-канал, используя скрипт - PullRequest
3 голосов
/ 26 декабря 2011

Редактировать: Переведено

У меня есть RSS-лента, которую я хочу проанализировать.Это подкаст, и я хочу, чтобы только MP3-URL загружали его с помощью wget.

Это подкаст: http://feeds.feedburner.com/Film-UndKino-trailerVideopodcast

Название должно содержать (de), чтобы получить только немецкийэпизоды.Дата публикации должна быть сегодня.

Было бы здорово, если бы кто-нибудь мог мне помочь - я зашел так далеко:

wget -q -O- view-source:http://feeds.feedburner.com/Film-UndKino-trailerVideopodcast?format=xml| awk 'BEGIN{RS=""}
/(date +'%d %M %Y')/{
gsub(/.*|.*/,"")
print
}

Но это не сработало.

Заранее спасибо, arneb3rt

1 Ответ

2 голосов
/ 29 декабря 2011

Вам нужно удалить «view-source:» из команды wget и выполнить команду даты (с% b для печати сокращенного месяца вместо% M) за пределами команды awk. Следующий скрипт bash использует grep вместо awk для получения URL-адресов, по которым wget может получить подкасты.

Обратите внимание, что, вероятно, из-за выходных, с 24 декабря 2011 года в ленте не было подкастов, поэтому я жестко закодировал дату последнего подкаста для тестирования:

url='http://feeds.feedburner.com/Film-UndKino-trailerVideopodcast?format=xml'
d=$(date +'%d %b %Y')
d="24 Dec 2011"
echo "Checking podcasts for date: ${d}"
wget -q -O- ${url} |\
 grep -A6 "(de)" |\
 grep -A1 "${d}" |\
 egrep -o 'http[^ ]*de.mp4' |\
 sort | uniq

В выводе приведенного выше скрипта bash перечислены два URL-адреса (один feedburner, а другой iTunes):

Checking podcasts for date: 24 Dec 2011
http://feedproxy.google.com/~r/Film-UndKino-trailerVideopodcast/~5/pzeSvkVK-3A/trailer01_de.mp4
http://www.moviemaze-trailer.de/ipod/6841/trailer01_de.mp4

Таким образом, вы можете получить подкаст 24 декабря 2011 года по любому из указанных выше URL.

...