python lxml解析中文的問題
問題描述
使用lxml來(lái)抓取中文字符,抓到的結(jié)果很蛋疼,不知道怎么處理...
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') #結(jié)果為[<Element p at 0x7bf01c8>, <Element p at 0x78f4408>, <Element p at 0x69db388>]p[0].xpath('./span/text()') #這個(gè)是想要抓取的字符
結(jié)果抓到的是這樣的 [u’xe6x80xa7xe8xb4xa8’]unicode但是內(nèi)容是str的編碼,請(qǐng)問怎么把這個(gè)東西轉(zhuǎn)成中文?正常應(yīng)該是’xe6x80xa7xe8xb4xa8’或者u’u6027u8d28’
問題解答
回答1:’’.join(map(lambda x:chr(x), map(lambda x:ord(x), u’xe6x80xa7xe8xb4xa8’))).decode(’utf-8’)回答2:
出現(xiàn)這種情況,一般是requests猜錯(cuò)了網(wǎng)頁(yè)的編碼了因此指定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') #結(jié)果為[<Element p at 0x7b ...: f01c8>, <Element p at 0x78f4408>, <Element p at 0x69db388>] ...: p[0].xpath('./span/text()') #這個(gè)是想要抓取的字符 ...: Out[33]: [u’u6027u8d28’]In [34]: print _[0]性質(zhì)
相關(guān)文章:
1. docker - 如何修改運(yùn)行中容器的配置2. javascript - Web微信聊天輸入框解決方案3. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?4. javascript - log4js的使用問題5. javascript - 移動(dòng)端textarea不能上下滑動(dòng),該怎么解決?6. css - 對(duì)于類選擇器使用的問題7. javascript - 音頻加載問題8. javascript - 為什么這個(gè)點(diǎn)擊事件需要點(diǎn)擊兩次才有效果9. javascript - Ajax加載Json時(shí),移動(dòng)端頁(yè)面向左上角縮小一截兒,加載完成后才正常顯示,這該如何解決?10. javascript - 有沒有什么好的圖片懶加載的插件,需要包含監(jiān)聽頁(yè)面滾動(dòng)高度,然后再加載的功能
