爬中文网站,用lxml解析,乱码问题

问题

爬中文网站,用lxml.etree的xpath解析,取出来的的文字打印出来是这样的乱码:
�������个������好������罪������京�中����500�������人���们���对�
头大TT

过程

看过网页源码没毛病啊!
取部分文字出来看:

In: s
Out: u'\r\n \xe6\x97\xa5\xe6\x9c\xac\xe5\x86\xb3\xe5\xae\x9a\xe6\x88\x90\xe7\xab\x8b\xe4\xb8\x80\xe4\xb8\xaa\xe6\x96\xb0\xe7\x9a\x84\xe6\x9c\xba\xe6\x9e\x84\xe6\x9d\xa5\xe6\x9b\xb4\xe5\xa5\xbd\xe5\x9c\xb0\xe5\xa4\x84\xe7\x90\x86\xe7\xbd\x91\xe7\xbb\x9c\xe7\x8a\xaf\xe7\xbd\xaa\xe3\x80\x82\xe6\x80\xbb\xe9\x83\xa8\xe4\xbd\x8d\xe4\xba\x8e\xe4\xb8\x9c\xe4\xba\xac\xe7\x9a\x84\xe4\xb8\xad\xe5\xbf\x83\xe6\xb1\x87\xe8\x81\x9a\xe4\xba\x86500\xe5\x90\x8d\xe5\x88\x86\xe6\x9e\x90\xe5\xb8\x88\xe5\x92\x8c\xe8\xb0\x83\xe6\x9f\xa5\xe4\xba\xba\xe5\x91\x98\xef\xbc\x8c\xe4\xbb\x96\xe4\xbb\xac\xe4\xb9\x9f\xe5\xb0\x86\xe4\xbc\x9a\xe5\xaf\xb9\xe4\xbb\x98'

In: type(s)
Out: lxml.etree._ElementUnicodeResult

解决

修改源代码的编码格式

r.encoding = 'utf-8'
r.xpath = etree.HTML(r.text).xpath

r.xpath('//h1[@class="article-title"]/text()'')取到的中文就正常了

你可能感兴趣的:(爬中文网站,用lxml解析,乱码问题)