问题
爬中文网站,用lxml.etree的xpath解析,取出来的的文字打印出来是这样的乱码:
æ�¥æ�¬å�³å®�æ��ç«�ä¸�个æ�°ç��æ�ºæ��æ�¥æ�´å¥½å�°å¤�ç��ç½�ç»�ç�¯ç½ªã��æ�»é�¨ä½�äº�ä¸�京ç��ä¸å¿�æ±�è��äº�500å��å��æ��å¸�å��è°�æ�¥äººå��ï¼�ä»�们ä¹�å°�ä¼�对ä»�
头大TT
过程
看过网页源码<meta charset="UTF-8">没毛病啊!
取部分文字出来看:
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()'')取到的中文就正常了
网友评论