资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,9/10/2018,#,2.4.1,获取元素节点的父节点,2.4.1 获取元素节点的父节点,2.4.1,获取元素节点的父节点,BeautifulSoup,通过:,tag.parent,获取,tag,节点的父节点,其中根节点,的父节点是名称为,document,的节点,这个,document,节点的父节点是,None,。,2.4.1 获取元素节点的父节点,例,2-4-1,:找出文档中,The Dormouses story,的,元素节点的所有父节点的名称。,from bs4 import BeautifulSoup,doc=,The Dormouses story,The Dormouses story,Once upon a time there were three little sisters;and their names were,Elsie,Lacie and,Tillie;,and they lived at the bottom of a well.,.,soup=BeautifulSoup(doc,lxml),print(soup.name),tag=soup.find(b),while tag:,print(tag.name),tag=tag.parent,例2-4-1:找出文档中,程序结果:,document,b,p,body,html,document,由此可见,节点的父节点依次为,、,、,程序结果:,2.4.2,获取元素节点的直接子元素节点,2.4.2 获取元素节点的直接子元素节点,2.4.2,获取元素节点的直接子元素节点,BesutifulSoup,通过:,tag.children,获取,tag,节点的所有直接子节点,包括,element,、,text,等类型的节点。,2.4.2 获取元素节点的直接子元素节点,例,2-4-2,:获取,元素的所有直接子元素节点,from bs4 import BeautifulSoup,doc=,The Dormouses story,The Dormouses story Once upon a time.,soup=BeautifulSoup(doc,lxml),tag=soup.find(p),for x in tag.children:,print(x),例2-4-2:获取元素的所有直接子元素节点,程序结果:,The Dormouses story,Once upon a time.,节点下面有,2,个直接子节点元素,一个是,element,类型的节点,The Dormouses story,,另外一个是,text,类型的节点,Once upon a time.,程序结果:,2.4.3,获取元素节点的所有子孙元素节点,2.4.3 获取元素节点的所有子孙元素节点,2.4.3,获取元素节点的所有子孙元素节点,BesutifulSoup,通过:,tag.,desendants,获取,tag,节点的所有子孙节点元素,包括,element,、,text,等类型的节点。,2.4.3 获取元素节点的所有子孙元素节点,例,2-4-3,:获取,元素的所有子孙元素节点,from bs4 import BeautifulSoup,doc=,The Dormouses story,The Dormouses story Once upon a time.,soup=BeautifulSoup(doc,lxml),tag=soup.find(p),for x in tag.descendants:,print(x),程序结果:,The Dormouses story,The,Dormouses,Dormouses,story,Once upon a time.,由此可见,元素节点下面有下面几个子孙节点:,The:,这是一个,text,孙子节点,它是,的子节点;,Dormouses:,这是,下面的一个,element,孙子节点,是,的子节点;,Dormouses:,这是,下面的孙子,text,节点,即,Dormouses,的子节点;,story,:这是,下面的孙子,text,节点,它是,的子节点;,Once upon a time.,:它是,下面的,text,子节点;,例2-4-3:获取元素的所有子孙元素节点,2.4.4,获取元素节点的兄弟节点,BesutifulSoup,通过:,tag.next_sibling,tag.previous_sibling,来获取下一个和前一个兄弟节点,其中,tag.next_sibling,是,tag,的临近的下一个兄弟节点,,tag.previous_sibling,是,tag,的临近的前一个兄弟节点。,2.4.4 获取元素节点的兄弟节点,例,2-4-4,:查找前后兄弟节点,from bs4 import BeautifulSoup,doc=,The Dormouses story,The Dormouses story Once upon a time.,soup=BeautifulSoup(doc,lxml),tag=soup.find(b),print(tag.previous_sibling),print(tag.next_sibling),tag=soup.find(i),print(tag.previous_sibling),print(tag.next_sibling),程序结果:,None,Once upon a time.,The,story,由此可见,节点的前面兄弟节点为,None,,下一个兄弟节点是,text,节点,Once upon a time.,,,节点的前一个兄弟节点是,text,节点,The,,下一个是,text,节点,story,。,例2-4-4:查找前后兄弟节点,
展开阅读全文