我尝试使用Feed解析器阅读RSS Feed。
import feedparser
url = 'http://example.com/news.xml'
d=feedparser.parse(url)
f = open('rss.dat','w')
for e in d.entries:
title = e.title
print >>f, address
f.close()
它适用于英文RSS-feeds,但如果我尝试显示用西里尔字母书写的标题,我会收到UnicodeEncodeError。它发生在我:
我的问题是如何轻松解决这个问题。我希望有一个简单的解决方案:
new_title = some_function(title)
可能有办法用HTML代码替换每个Cyrillic符号吗?
答案 0 :(得分:3)
FeedParser本身可以正常编码,除非它被错误地声明。有关可能的解释,请参阅http://code.google.com/p/feedparser/issues/detail?id=114。似乎Python 2.5使用ascii作为默认编码,并导致问题。 您可以粘贴实际的Feed网址,以查看在那里声明编码的方式。如果声明编码似乎错误 - 您必须找到一种方法来指示FeedParser覆盖默认值。
编辑:好的,似乎错误出现在print语句中。 使用
f.write(title.encode('utf-8'))