我想解析Feed
feed = feedparser.parse(url)
e = feed.entries[0]
summary=e['summary']
现在当我使用BeautifulSoap解析摘要时。
self.summary = BeautifulSoup(summary.encode('utf-8')) #summary
我收到了错误。
异常类型:UnicodeEncodeError异常值:'ascii'编解码器 不能编码位置755中的字符u'\ xa3':序数不在 范围(128)
问题在于£4,000 。我尝试过:
summary.encode('utf-8','ignore'), summary.encode('ascii','ignore')
我花了很多时间来解决这个问题,但仍然不能。所以我在这里问这个问题。
如果您让我知道支持大多数字符的编码或跳过该字符的任何方法,那将非常有帮助。
答案 0 :(得分:1)
我尝试将带有utf8英镑符号的html文件加载到字符串“file”中
这给出了与您所看到的相同的错误
soup2=BeautifulSoup(file.encode('utf8'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 17: ordinal not in range(128)
然而,这似乎工作得很好
soup2=BeautifulSoup(file.decode('utf-8'))
soup2.find('p')
<p>£
</p>
我想“编码”和“解码”的概念是你所期望的另一种方式。希望这会有所帮助。