python如何将xml对象转化为字符串

想要爬取一个大模块比如一个div所有内容(包括标签),用xpath取出的是一个xml对象,如何将xml对象转化为string字符串?

使用 etree 下的 toString 方法,
参数设置 method='xml' (也可以不设置,因为默认为xml),
encoding='utf-8' (不设置汉字会以ACCII码显示,设置后会输出汉字对应的unicode编码),

最后使用 decode() 方法把 unicode 转化为 汉字 就ok了
(网上搜的一般是解析xml,比较麻烦,如果想要转化json可以使用,但是只想要html的话不推荐)

    html = etree.HTML(response)
    cont = html.xpath('//*[@class="text"]')[0]
    print(type(cont)) # <class 'lxml.etree._Element'>
    aa =  etree.tostring(cont,method='xml',encoding='utf-8') 
    print(type(aa)) # <class 'bytes'>
    print(type( aa.decode('utf-8'))) # <class 'bytes'>
    print( aa.decode('utf-8')) #div class="text"下所有内容,包括标签

发表评论

邮箱地址不会被公开。 必填项已用*标注