python lxml解析中文的问题
问题描述
使用lxml来抓取中文字符,抓到的结果很蛋疼,不知道怎么处理...
comUrl='http://m.51job.com/search/codetail.php?coid=4108723'res=requests.get(comUrl)html=etree.HTML(res.text)p=html.xpath('//aside')[1].xpath('./p') #结果为[<Element p at 0x7bf01c8>, <Element p at 0x78f4408>, <Element p at 0x69db388>]p[0].xpath('./span/text()') #这个是想要抓取的字符
结果抓到的是这样的 [u’xe6x80xa7xe8xb4xa8’]unicode但是内容是str的编码,请问怎么把这个东西转成中文?正常应该是’xe6x80xa7xe8xb4xa8’或者u’u6027u8d28’
问题解答
回答1:’’.join(map(lambda x:chr(x), map(lambda x:ord(x), u’xe6x80xa7xe8xb4xa8’))).decode(’utf-8’)回答2:
出现这种情况,一般是requests猜错了网页的编码了因此指定requests的编码就可以了.res.encoding =’utf-8’
In [33]: comUrl='http://m.51job.com/search/codetail.php?coid=4108723' ...: res=requests.get(comUrl) ...: res.encoding =’utf-8’ ...: html=etree.HTML(res.text) ...: p=html.xpath('//aside')[1].xpath('./p') #结果为[<Element p at 0x7b ...: f01c8>, <Element p at 0x78f4408>, <Element p at 0x69db388>] ...: p[0].xpath('./span/text()') #这个是想要抓取的字符 ...: Out[33]: [u’u6027u8d28’]In [34]: print _[0]性质
相关文章:
1. mysql怎么修改约束啊2. javascript - 微信 H5 授权 返回键3. objective-c - iOS开发支付宝和微信支付完成为什么跳转到了之前开发的一个app?4. android - 在win7配置 react native开发环境时,一直卡在这里,请问以下是哪里出错了,谢谢!5. ,我写的代码哪里出错了?为什么就是显示不出来peter?6. python - flask post提交timestamp不能作为参数,这是为什么?7. android - 安卓使用webview播放腾讯、优酷视频的方法8. PHP类属性声明?9. mysql sql where id in(25,12,87) 结果集如何用按照 25 12 87排序?10. 为什么微信内置浏览器用$_COOKIE取不到值?