为什么带有python3的Beautiful Soup 4打印unicode而不打印python2?

2024-06-28 16:10:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试在python3.4上用beautifuldsoup4制作一个quotescraper和redditbot。我从goodreads中提取引号的代码如下: http://pastebin.com/1EZHPmym 问题是,它在引号和作者姓名之间打印出诸如“\xe2\x80\x9c”之类的内容序列。 我是一个完全的编程初学者,我试过研究这个问题,结果发现这是一个编码问题。所以我继续看goodreads quotes源页面上的字符集。然后我浏览了源代码页,找到了包含我想要的文本的确切div,我看到:

不要因为结束而哭泣,微笑吧,为你的曾经拥有

它显示了一些奇怪的字符,如“&;8213”、“&;ldquo”等。。我目前正在研究一个bruteforce方法来找到所有奇怪的字符,并从结果中简单地消除它们。但我看了这个视频:BeautifulSoup教程,他似乎没有遇到和我一样的东西,这是有道理的,因为洛杉矶咖啡店黄页的源代码没有相同的奇怪字符。你知道吗

在python2.7中,我没有为print函数设置括号,同样的代码也会生成没有unicode的文本。有什么原因吗?你知道吗

请注意,我目前的解决方案是使用python的.replace for python3来消除unicode,但是有更好的解决方案吗?你知道吗

请注意,Beautiful Soup and Unicode Problems很好地解释了正在发生的事情,但我不明白为什么在python2.7中没有出现这个问题


Tags: 代码文本comhttp源代码unicode解决方案字符