【发布时间】:2012-10-18 02:50:16
【问题描述】:
我正在用 python 编写一个网络爬虫,它涉及从网站获取头条新闻。
头条新闻应该是这样的:Hip 也来了
但它却说:Hip 也来了
这里出了什么问题?
【问题讨论】:
-
如果您包含相关代码以及您正在解析的特定网站,会更容易为您提供帮助。
标签: python python-2.7
我正在用 python 编写一个网络爬虫,它涉及从网站获取头条新闻。
头条新闻应该是这样的:Hip 也来了
但它却说:Hip 也来了
这里出了什么问题?
【问题讨论】:
标签: python python-2.7
这是一个编码错误 - 所以如果它是一个 unicode 字符串,这应该修复它:
text.encode("windows-1252").decode("utf-8")
如果是纯字符串,则需要额外的步骤:
text.decode("utf-8").encode("windows-1252").decode("utf-8")
这两个都会给你一个 unicode 字符串。
顺便说一句 - 要发现这样的一段文本是如何由于编码问题而被破坏的,您可以使用chardet:
>>> import chardet
>>> chardet.detect(u"And the Hip’s coming, too")
{'confidence': 0.5, 'encoding': 'windows-1252'}
【讨论】:
您需要正确解码源文本。源文本很可能是 UTF-8 格式,而不是 ASCII。
由于您没有为您的问题提供任何上下文或代码,因此无法直接给出答案。
我建议你研究一下 Python 中如何完成 unicode 和字符编码:
【讨论】:
u'\N{RIGHT SINGLE QUOTATION MARK}'.encode('utf-8').decode('cp1252')。