Как я могу запланировать автоматическую загрузку подкаста Morning Edition?
Я хотел бы автоматически загружать подкаст Morning Edition каждый день. Я не владею никакими яблочными продуктами. Я скачал и установил 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 для механизации или scrapy.
Обе эти библиотеки Python упакованы для Debian и Ubuntu как python-mechanize
а также python-scrapy
, поэтому установите пакеты (и не следуйте pip install
или какие-либо инструкции на веб-сайтах)
Есть похожие библиотеки для других языков.