我正在使用pyquery解析一个页面:
dom = PyQuery('http://zh.wikipedia.org/w/index.php', {'title': 'CSS', 'printable': 'yes', 'variant': 'zh-cn'})
content = dom('#mw-content-text > p').eq(0).text()
但是我在content
中得到的是一个带有utf-8编码内容的unicode字符串:
u'\xe5\xb1\x82\xe5\x8f\xa0\xe6\xa0\xb7\xe5\xbc\x8f\xe8\xa1\xa8...'
我怎样才能在不丢失内容的情况下将其转换为str
?
要说清楚:
我要conent == '\xe5\xb1\x82\xe5\x8f\xa0\xe6\xa0\xb7\xe5\xbc\x8f\xe8\xa1\xa8'
不是conent == u'\xe5\xb1\x82\xe5\x8f\xa0\xe6\xa0\xb7\xe5\xbc\x8f\xe8\xa1\xa8'
如果有带UTF-8字节的
unicode
值,则编码为拉丁文-1以保留“字节”:因为Unicode代码点U+0000到U+00FF都与latin-1编码一一对应;因此这种编码将数据解释为文本字节。
以你为例,这给了我:
PyQuery
使用requests
或urllib
检索HTML,在requests
的情况下,使用响应的.text
属性。这将根据单独在Content-Type
头中设置的编码自动解码响应数据,或者如果该信息不可用,则为此使用latin-1
(对于文本响应,但HTML是文本响应)。您可以通过传入一个encoding
参数来覆盖它:在这一点上你根本不需要重新编码。
相关问题 更多 >
编程相关推荐