Skip to content

Instantly share code, notes, and snippets.

@monty5811
Created July 25, 2014 12:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save monty5811/da8a4f109ee849e54c06 to your computer and use it in GitHub Desktop.
Save monty5811/da8a4f109ee849e54c06 to your computer and use it in GitHub Desktop.
#! /usr/bin/env
import datetime
import sys
import urllib2
import PyRSS2Gen
from lxml import etree
from slugify import slugify
def url2rss(itunesu_url):
response = urllib2.urlopen(itunesu_url)
htmlparser = etree.HTMLParser()
tree = etree.parse(response, htmlparser)
feed_items = list()
for row in tree.xpath('//*[@id="content"]/div/div[2]/div/div/table/tbody/tr'):
episode = dict(row.items())
# print episode['preview-title'].encode('utf-8')
feed_items.append(PyRSS2Gen.RSSItem(
title=episode['preview-title'],
link=episode['audio-preview-url'],
enclosure=PyRSS2Gen.Enclosure(episode['audio-preview-url'],
urllib2.urlopen(
episode['audio-preview-url']).info()['Content-Length'], "audio/mpeg"),
guid=PyRSS2Gen.Guid(episode['audio-preview-url']),
pubDate=datetime.datetime.strptime(urllib2.urlopen(episode['audio-preview-url']).info()['Date'],
'%a, %d %b %Y %H:%M:%S %Z')))
rss = PyRSS2Gen.RSS2(
title=episode['preview-album'],
link=itunesu_url,
description=episode['preview-album'],
lastBuildDate=datetime.datetime.now(),
items=feed_items)
rss.write_xml(open(slugify(episode['preview-album']) + ".xml", "w"))
if __name__ == '__main__':
for link in sys.argv[1:]:
try:
print "Working on %s" % link
url2rss(link)
except Exception, e:
print "%s failed: %r" % (link, e)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment