Python:如何使用BeautifulSoup来处理编码问题?

时间:2014-06-26 15:55:41

标签: python beautifulsoup

这是我第一次使用BeautifulSoup。

基本上,我使用BeautifulSoup来提取数据。我正在尝试基于webtable在csv中构建一个表。我的表格的一个示例行如下所示:

[<td>1</td>, <td> Chief executives and senior officials</td>, <td>£120,830</td>,<td>-3.8</td>]

现在,问题是当我使用.text.encode('utf8')时,输出变为:

('1', ' Chief executives and senior officials', '\xc2\xa3120,830', '-3.8')

数字£120,830变为\xc2\xa3120,830,我不知道这是什么类型的编码。有没有办法让我得到正确的输出£120,830而不是疯狂的编码?

或者,有没有办法让这个疯狂编码的东西\xc2\xa3120,830在我的csv中看起来像£120,830?有谁知道如何处理这类问题?

另一种方法是删除<td>标记并保留内容,但是如何在python中执行此操作?有没有一种有效的方法来摆脱这些标签? 任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:2)

当你将它编码为UTF-8时,这就是£的出现方式。如果那不是你想要的,你为什么编码?

更详细地说,UTF-8将U+00A3编码为字节序列0xC2 0xA3(两个字节),Python在字符串中显示为'\xc2\xa3'

如果你想在一个文件中想要这个并且你希望文件是UTF-8编码的,那么没有什么不对,除了你用来查看文件的内容。