1、2.4.1 获取元素节点的父节点获取元素节点的父节点2.4.1 获取元素节点的父节点获取元素节点的父节点BeautifulSoup通过:tag.parent获取tag节点的父节点,其中根节点的父节点是名称为document的节点,这个document节点的父节点是None。例例2-4-1:找出文档中:找出文档中The Dormouses story的的元素节点的所有父节点的名称。元素节点的所有父节点的名称。frombs4importBeautifulSoupdoc=TheDormousesstoryTheDormousesstoryOnceuponatimetherewerethreelitt
2、lesisters;andtheirnameswereElsie,LacieandTillie;andtheylivedatthebottomofawell.soup=BeautifulSoup(doc,lxml)print(soup.name)tag=soup.find(b)whiletag:print(tag.name)tag=tag.parent程序结果:documentbpbodyhtmldocument由此可见节点的父节点依次为、2.4.2 获取元素节点的直接子元素节点获取元素节点的直接子元素节点2.4.2 获取元素节点的直接子元素节点获取元素节点的直接子元素节点BesutifulS
3、oup通过:tag.children获取tag节点的所有直接子节点,包括element、text等类型的节点。例例2-4-2:获取:获取元素的所有直接子元素节点元素的所有直接子元素节点frombs4importBeautifulSoupdoc=TheDormousesstoryTheDormousesstoryOnceuponatime.soup=BeautifulSoup(doc,lxml)tag=soup.find(p)forxintag.children:print(x)程序结果:TheDormousesstoryOnceuponatime.节点下面有2个直接子节点元素,一个是eleme
4、nt类型的节点TheDormousesstory,另外一个是text类型的节点Onceuponatime.2.4.3 获取元素节点的所有子孙元素节点获取元素节点的所有子孙元素节点2.4.3 获取元素节点的所有子孙元素节点获取元素节点的所有子孙元素节点BesutifulSoup通过:tag.desendants获取tag节点的所有子孙节点元素,包括element、text等类型的节点。例例2-4-3:获取:获取元素的所有子孙元素节点元素的所有子孙元素节点frombs4importBeautifulSoupdoc=TheDormousesstoryTheDormousesstoryOnceupon
5、atime.soup=BeautifulSoup(doc,lxml)tag=soup.find(p)forxintag.descendants:print(x)程序结果:TheDormousesstoryTheDormousesDormousesstoryOnceuponatime.由此可见元素节点下面有下面几个子孙节点:The:这是一个text孙子节点,它是的子节点;Dormouses:这是下面的一个element孙子节点,是的子节点;Dormouses:这是下面的孙子text节点,即Dormouses的子节点;story:这是下面的孙子text节点,它是的子节点;Onceuponatime
6、.:它是下面的text子节点;2.4.4 获取元素节点的兄弟节点获取元素节点的兄弟节点BesutifulSoup通过:tag.next_siblingtag.previous_sibling来获取下一个和前一个兄弟节点,其中tag.next_sibling是tag的临近的下一个兄弟节点,tag.previous_sibling是tag的临近的前一个兄弟节点。例例2-4-4:查找前后兄弟节点:查找前后兄弟节点 frombs4importBeautifulSoupdoc=TheDormousesstoryTheDormousesstoryOnceuponatime.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)程序结果:NoneOnceuponatime.Thestory由此可见节点的前面兄弟节点为None,下一个兄弟节点是text节点Onceuponatime.,节点的前一个兄弟节点是text节点The,下一个是text节点story。