python?中?lxml?的?etree?標(biāo)簽解析
一、安裝
pip install lxml
二、創(chuàng)建標(biāo)簽
from lxml import etree
root = etree.Element('root')三、添加子節(jié)點(diǎn)
from lxml import etree
root = etree.Element('root')
span = etree.SubElement(root, 'span')四、刪除子節(jié)點(diǎn)
from lxml import etree
root = etree.Element('root')
span = etree.SubElement(root, 'span')
root.remove(span)五、刪除所有子節(jié)點(diǎn)
from lxml import etree
root = etree.Element('root')
root.clear()六、操作子節(jié)點(diǎn)
from lxml import etree
root = etree.Element('root')
span = etree.SubElement(root, 'span')
# 獲取標(biāo)簽數(shù)
len(root)
# 獲取標(biāo)簽索引號,如果有多個(gè)相同標(biāo)簽的話,可以區(qū)分
root.index(span)
# 按位置插入
root.insert(0, etree.Element('p'))
# 尾部添加
root.append(etree.Element('strong'))七、獲取父節(jié)點(diǎn)
獲取標(biāo)簽父節(jié)點(diǎn)的兩種方法:
from lxml import etree
root = etree.Element('root')
span = etree.SubElement(root, 'span')
# 獲取父節(jié)點(diǎn)方法一
span.getparent().tag
# 獲取父節(jié)點(diǎn)方法二,用列表獲取子節(jié)點(diǎn),再獲取父節(jié)點(diǎn)
root[0].getparent().tag八、創(chuàng)建屬性
from lxml import etree
root = etree.Element('root')
root.set('title', '這是一個(gè)root標(biāo)簽')九、獲取屬性
獲取屬性的三種方法
from lxml import etree
root = etree.Element('root')
# 獲取屬性方法一
root.get('title')
# 獲取屬性方法二,參考字典的操作
root.keys(),root.values(),root.items()
# 獲取屬性方法三,直接拿到屬性存放的字典
root.attrib十、設(shè)置標(biāo)簽文本
添加文本和追加文本
from lxml import etree
root = etree.Element('root')
# 標(biāo)簽內(nèi)添加文本
root.text='i am autofelix'
# 標(biāo)簽后追加文本
root.tail = 'i am autofelix'十一、xpath方法
from lxml import etree
root = etree.Element('root')
word = root.xpath('//text()')
word[0].getparent().tag十二、判斷文本類型
from lxml import etree
root = etree.Element('root')
word = root.xpath('//text()')
# 是否是text文本
word.is_text
# 是否是tail文本
word.is_tail十三、字符串解析
from lxml import etree
html = etree.fromstring('<root>autofelix</root>')
html.tag
etree.tostring(html)十四、XML解析
from lxml import etree
html = etree.XML('<root>autofelix</root>')
html.tag
etree.tostring(html)十五、去除XML中的空行
from lxml import etree
# 去除xml文件里的空行
parser= etree.XMLParser(remove_blank_text=True)
root = etree.XML('<root> auto felix </root>', parser)
print etree.tostring(root)十六、HTML解析
HTML方法,如果沒有<html>和<body>標(biāo)簽,會自動(dòng)補(bǔ)上
from lxml import etree
html = etree.HTML('<root>autofelix</root>')
etree.tostring(html)十七、搜索和定位
from lxml import etree
root = etree.XML('<root><a class="uname">i am autofelix<b/><c/><b/></a></root>')
# findall操作返回列表
root.findall('a')[0].text
# find操作就相當(dāng)與找到了這個(gè)元素節(jié)點(diǎn),返回匹配到的第一個(gè)元素
root.find('.//a').text
# 配合列表解析
[ b.text for b in root.findall('.//a') ]
# 根據(jù)屬性查詢
root.findall('.//a[@class]')[0].tag到此這篇關(guān)于python 中 lxml 的 etree 標(biāo)簽解析的文章就介紹到這了,更多相關(guān)python etree 標(biāo)簽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
django認(rèn)證系統(tǒng)實(shí)現(xiàn)自定義權(quán)限管理的方法
這篇文章主要介紹了django認(rèn)證系統(tǒng)實(shí)現(xiàn)自定義權(quán)限管理的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07
Python實(shí)現(xiàn)1-9數(shù)組形成的結(jié)果為100的所有運(yùn)算式的示例
下面小編就為大家?guī)硪黄狿ython實(shí)現(xiàn)1-9數(shù)組形成的結(jié)果為100的所有運(yùn)算式的示例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11
基于Python代碼實(shí)現(xiàn)Apriori?關(guān)聯(lián)規(guī)則算法
這篇文章主要介紹了基于Python代碼實(shí)現(xiàn)Apriori?關(guān)聯(lián)規(guī)則算法,本文通過應(yīng)用場景舉例,結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03
python多進(jìn)程使用函數(shù)封裝實(shí)例
這篇文章主要介紹了python多進(jìn)程使用函數(shù)封裝實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
pymongo實(shí)現(xiàn)控制mongodb中數(shù)字字段做加法的方法
這篇文章主要介紹了pymongo實(shí)現(xiàn)控制mongodb中數(shù)字字段做加法的方法,涉及Python使用pymongo模塊操作mongodb數(shù)據(jù)庫字段的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
python可以美化表格數(shù)據(jù)輸出結(jié)果的兩個(gè)工具
這篇文章主要介紹了python可以美化表格數(shù)據(jù)輸出結(jié)果的兩個(gè)工具,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06

