美丽的汤使用html.parser麻烦解码引号

时间:2016-10-14 20:23:45

标签: python beautifulsoup html-parsing

我有一个简单的程序来获取福克斯新闻的文章文本,但由于某种原因,我很难让引号被正确解码。

from bs4 import BeautifulSoup
import urllib

r = urllib.urlopen('http://www.foxnews.com/politics/2016/10/14/emails-reveal-clinton-teams-early-plan-for-handling-bill-sex-scandals.html').read()
soup = BeautifulSoup(r, 'html.parser')

for item in soup.find_all('div', class_='article-text'):
    print item.get_text().encode('UTF-8')

这抓住了我正在寻找的文字,但对于文章中的几乎所有引号,它们都是这样打印的:Bill Clinton's。我已经尝试专门定义解码为utf-8并查看了页面以查看它声明的编码,并且它也是utf-8所以我不确定为什么会这样。

1 个答案:

答案 0 :(得分:0)

所以这并不能解决为什么Beautiful Soup在解码文本时遇到问题,但我找到了两种迂回的方法来解决这个问题。一种是在脚本顶部声明一个编码:

      # This Python file uses the following encoding: utf-8

另一种是解码并删除所有Unicode字符,然后再用ascii进行编码。

print(temp.decode('unicode_escape').encode('ascii','ignore'))