Универсальный анализатор каналов действительно хорош для большинства каналов, но для расширенных каналов вы можете попробовать что-то под названием BeautifulSoup . Это библиотека синтаксического анализа XML / HTML / XHTML, изначально предназначенная для скрининга; Оказывается, это также замечательно для такого рода вещей. Документация довольно хорошая, и у нее есть понятный API, поэтому, если вы думаете об использовании чего-то еще, я бы порекомендовал.
Я бы, наверное, использовал это так:
>>> import BeautifulSoup
>>> import urllib2
# Fetch HTML data from url
>>> connection = urllib2.urlopen('http://kuler.adobe.com/path/to/rss.xml')
>>> html_data = connection.read()
>>> connection.close()
# Create and search the soup
>>> soup = BeautifulSoup.BeautifulSoup(html_data)
>>> themes = soup.findAll('kuler:themeitem') # Note: all lower-case element names
# Get the ID of the first theme
>>> themes[0].find('kuler:themeid').contents[0]
u'123456'
# Get an ordered list of the hex colors for the first theme
>>> themeswatches = themes[0].find('kuler:themeswatches')
>>> colors = [color.contents[0] for color in
... themeswatches.findAll('kuler:swatchhexcolor')]
>>> colors
[u'FFFFFF', u'000000']
Так что вы, вероятно, можете понять, что это очень крутая библиотека. Было бы не слишком хорошо, если бы вы анализировали какой-либо старый канал RSS, но поскольку данные получены из Adobe Kuler, вы можете быть совершенно уверены, что они не будут достаточно сильно меняться, чтобы сломать ваше приложение (то есть это достаточно надежный источник).
Еще хуже пытается разобраться с чертовым форматом .ASE Adobe. Я попытался написать парсер для него, и он стал действительно ужасным, очень быстро. Ug. Так что, да, RSS-каналы, вероятно, самый простой способ взаимодействия с Kuler.