
Я хотел бы автоматически загружать подкаст Morning Edition каждый день. У меня нет никаких продуктов Apple. Я загрузил и установил flareget, но не могу понять, как заставить его это делать. Я не привязан к этому инструменту. Я давний пользователь Firefox, но в настоящее время тестирую Chrome.
URL-адрес программы: http://www.npr.org/programs/morning-edition/
Адрес RSS:http://www.npr.org/rss/rss.php?id=3
Проблема в том, что RSS включает ссылку на веб-страницу отдельной истории вместо ссылки на mp3.
<rss xmlns:npr="http://www.npr.org/rss/" xmlns:nprml="http://api.npr.org/nprml" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
<channel>
<title>
Morning Edition : NPR
</title>
<link>
http://www.npr.org/templates/story/story.php?storyId=3
</link>
<description>
Morning Edition gives its audience news, analysis, commentary, and coverage of arts and sports. Stories are told through conversation as well as full reports. It's up-to-the-minute news that prepares listeners for the day ahead.
</description>
<language>en</language>
<copyright>Copyright 2015 NPR - For Personal Use Only</copyright>
<generator>NPR API RSS Generator 0.94</generator>
<lastBuildDate>Fri, 06 Nov 2015 12:45:00 -0500</lastBuildDate>
<image>
<url>http://media.npr.org/images/podcasts/primary/npr_generic_image_300.jpg?s=200</url>
<title>Morning Edition</title>
<link>http://www.npr.org/templates/story/story.php?storyId=3</link>
</image>
<item>
<title>Russian Airliner Crash Update</title>
<description>
The latest information on the Russian airliner that crashed in Egypt. All 224 people on board were killed.
</description>
<pubDate>Fri, 06 Nov 2015 12:45:00 -0500</pubDate>
<link>
http://www.npr.org/2015/11/06/455019224/russian-airliner-crash-update?utm_medium=RSS&utm_campaign=morningedition
</link>
<guid>
http://www.npr.org/2015/11/06/455019224/russian-airliner-crash-update?utm_medium=RSS&utm_campaign=morningedition
</guid>
<content:encoded>
<![CDATA[
<p>The latest information on the Russian airliner that crashed in Egypt. All 224 people on board were killed.</p>
]]>
</content:encoded>
<dc:creator>Corey Flintoff</dc:creator>
</item>
...
Когда я открываю http://www.npr.org/2015/11/06/455019224/russian-airliner-crash-update?utm_medium=RSS&utm_campaign=morningedition
страницу в браузере, на ней есть ссылка на mp3-файл истории:
http://pd.npr.org/anon.npr-mp3/npr/me/2015/11/20151106_me_egypt_plane_crash_probe_russia.mp3?dl=1
Я вижу, что есть легко распознаваемый шаблон, который я мог бы использовать, но не могу понять, какие инструменты использовать или как заставить их делать то, что мне нужно.
Аудиофайл каждой истории начинается со слов:
http://pd.npr.org/anon.npr-mp3/npr/me/
затем добавьте папку на год
http://pd.npr.org/anon.npr-mp3/npr/me/2015
и один на месяц
http://pd.npr.org/anon.npr-mp3/npr/me/2015/11
все mp3 для сегодняшнего шоу
yyyymmdd_me*.mp3
Завершение, ?dl=1
похоже, не является необходимым.
решение1
Вам нужно будет написать веб-робота, который будет перемещаться по сайту, пока не найдет URL-адрес(ы) .mp3-файла, которые вы хотите загрузить, а затем загрузить именно эти URL-адреса.
Для perl
очевидным решением является использованиеlibwww-perlпакет (он же LWP
).
Для python
, я порекомендуюмеханизироватьилискребущийбиблиотеки Python.
Обе эти библиотеки Python упакованы для Debian и Ubuntu как python-mechanize
и python-scrapy
, поэтому установите пакеты (и не следуйте pip install
инструкциям на веб-сайтах)
Аналогичные библиотеки существуют и для других языков.