Maison  >  Questions et réponses  >  le corps du texte

Problèmes avec Python LXML lors de l'analyse du chinois

Utiliser lxml pour capturer des caractères chinois, le résultat est très pénible, je ne sais pas comment gérer ça...

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()")  #这个是想要抓取的字符

Le résultat est comme ceci [u'xe6x80xa7xe8xb4xa8']
unicode mais le contenu est encodé en str. Comment convertir cette chose en chinois ?
Normalement, cela devrait être 'xe6x80xa7xe8xb4xa8' ou u'u6027u8d28'

.
高洛峰高洛峰2712 Il y a quelques jours565

répondre à tous(2)je répondrai

  • 淡淡烟草味

    淡淡烟草味2017-05-18 10:46:31

    ''.join(map(lambda x:chr(x), map(lambda x:ord(x), u'\xe6\x80\xa7\xe8\xb4\xa8'))).decode('utf-8')

    répondre
    0
  • 滿天的星座

    滿天的星座2017-05-18 10:46:31

    Lorsque cela se produit, c'est généralement parce que les requêtes ont deviné le mauvais encodage de la page Web
    Il suffit donc de spécifier l'encodage des requêtes.
    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'\u6027\u8d28']
    
    In [34]: print _[0]
    性质
    

    répondre
    0
  • Annulerrépondre