Читать RSS-канал, используя скрипт

Изменить: переведено

У меня есть RSS-лента, которую я хочу разобрать. Это подкаст, и я хочу, чтобы только MP3-ссылки загружали их с помощью 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 = ""}
/ (дата + "%d %M %Y")/{
GSUB (/.*|.*/,"")
Распечатать
}

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

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

1 ответ

Решение

Вам нужно удалить "view-source:" из команды wget и выполнить команду date (с%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.

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