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)簽索引號(hà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方法,如果沒(méi)有<html>和<body>標(biāo)簽,會(huì)自動(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
windows上安裝Anaconda和python的教程詳解
本文主要給大家介紹windows上安裝Anaconda和python的教程詳解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-03-03
如何將Python代碼轉(zhuǎn)化為可執(zhí)行的程序
在Python中,將代碼轉(zhuǎn)成可以執(zhí)行的程序需要安裝庫(kù)pyinstaller,如果是Windows用戶,打開(kāi)Anaconda?Prompt輸入相對(duì)應(yīng)代碼,下面小編給大家詳細(xì)講解如何將Python代碼轉(zhuǎn)化為可執(zhí)行的程序,感興趣的朋友一起看看吧2024-03-03
封裝Detours用于Python中x64函數(shù)hook詳解
Detours是微軟發(fā)布的一個(gè)API hook框架,同時(shí)支持x86和x64,看文檔說(shuō)也支持ARM和ARM64的Windows,這篇文章主要介紹了封裝Detours用于Python中x64函數(shù)hook,需要的朋友可以參考下2023-12-12
Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)將多個(gè)映射合并為單個(gè)映射的方法
這篇文章主要介紹了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)將多個(gè)映射合并為單個(gè)映射的方法,結(jié)合實(shí)例形式分析了Python字典映射合并操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-04-04
Python標(biāo)準(zhǔn)庫(kù)inspect的具體使用方法
本篇文章主要介紹了Python標(biāo)準(zhǔn)庫(kù)inspect的具體使用方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
Python求解任意閉區(qū)間的所有素?cái)?shù)
本篇文章是一篇關(guān)于python求素?cái)?shù)的知識(shí)點(diǎn)內(nèi)容,如果大家在應(yīng)用中有用的到,不妨跟著學(xué)習(xí)下。2018-06-06
Python實(shí)現(xiàn)圖數(shù)據(jù)處理的完整指南
圖是一種非常重要的數(shù)據(jù)結(jié)構(gòu),在Python中,我們可以使用鄰接矩陣來(lái)表示圖,這篇文章主要為大家介紹了Python實(shí)現(xiàn)圖數(shù)據(jù)處理的相關(guān)知識(shí),需要的可以參考下2024-04-04
Python之兩種模式的生產(chǎn)者消費(fèi)者模型詳解
今天小編就為大家分享一篇Python之兩種模式的生產(chǎn)者消費(fèi)者模型詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10

