标签树的下行遍历
所用到的方法:(如下表)
.contents | 子节点列表,将tag所有儿子节点存入列表 |
---|---|
.children | 子节点的迭代类型,用于循环遍历儿子节点 |
.descendants | 子孙节点的迭代方式,包含所有子孙节点,用于循环遍历 |
代码如下:(此处代码延着上一篇博文的代码,故部分变量沿袭下来)
博文链接:
遍历body标签的所有子孙节点
>>> for child in soup.body.descendants:
print(child)
标签树的上行遍历
所用到的方法:(如下表)
.parent | 父节点列表,将tag所有儿子节点存入列表 |
---|---|
.parents | 父节点的迭代类型,用于循环遍历先辈节点 |
代码如下
遍历a标签的所有父节点
>>> for p in soup.a.parent:
if p is None:
print(p)
else :
print(p.name)
标签树的上平行遍历
发生在同一个父节点下的各个平行节点标签
所用到的方法:(如下表)
.next_sibling | 返回按html文本顺序返回下一个平行节点标签 |
---|---|
.next_siblings | 迭代类型,返回按html文本顺序返回后续所有平行节点标签 |
previous_sibling | 返回按html文本顺序返回上一个平行节点标签 |
.previous_siblings | 迭代类型,返回按html文本顺序返回前续所有平行节点标签 |
代码如下:其他方法同理
>>> for s in soup.a.next_sibling:
print(s)
在前续代码当中,我们对soup的输出后面加上了一个方法:.prettify
prettify()方法,soup.prettify或者print(soup.prettify)
在python3.0以上的版本,编码默认为utf-8