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. javascript - 问一个有趣的问题: 如何将 数字 转成 金额格式2. html - form 表单 用户名提示和错误提示分开显示?3. MySQL的SELECT...FOR UPDATE究竟起什么作用4. java - mysql查询,这是怎么查询的呢5. javascript - vue使用keep-alive不能保持滚动位置问题。6. jpa mysql 如何id自增初始值?7. docker网络端口映射,没有方便点的操作方法么?8. javascript - 一个字符串转换成数字,例子就是a="2,322.222",b=’1,211.21’,如何在angualr中执行相减9. python2.7为什么点击了"开始"按钮后,tkinter上的按钮,图中红色部分,再也点不动了?10. javascript - 小米浏览器中,图片导致fixed定位的元素无法显示

 网公网安备
网公网安备