我是python新手,尝试使用urllib2/lxml获取和解析页面。一切似乎都很好,除了被解析的页面,当我在浏览器中打开时,似乎有奇怪的字符嵌入其中。我猜这是unicode/lxml解析问题。当我使用.text_content()获取元素的文本内容并打印它时,在原始页面中会得到类似“sometext\342\200\223 moretext”的内容,显示为“sometext-moretext”
有谁能告诉我:
1发生什么事?
2我怎么修?
三。我在哪里可以读到像这样的编码问题?在
谢谢!在
Tags:
现在网站使用的是一个“endash”,它是一个稍长的破折号(你应该在40-56范围内使用这个破折号,真的)。是的,破折号本身就是一门科学)。在
在Unicode中,endash具有码位U+2013。您得到的数字,\342\200\223是该码位的UTF-8编码的八进制表示。为什么你得到八进制我不知道,我得到十六进制,所以在我的电脑上它看起来像'\xe2\x80\x93'。但这没什么区别,只是回应而已。数字是一样的。在
您可能应该做的是尽早将得到的HTML字符串解码为unicode。获取页面时返回的标题应该告诉您它使用什么编码(尽管这里显然是UTF8),从页眉中提取数据相当容易,当您打印出页眉时就会看到它。在
然后解码html数据:
在此过程中,您主要需要注意两个方面的unicode问题:
在
相关问题 更多 >
编程相关推荐