基于bs4库的HTML内容遍历方法

1、HTML基本格式(树形结构)

   

2、标签树的下行遍历

  

#使用contents对标签树进行遍历
import requests
from bs4 import BeautifulSoup
#BeautifulSoup是一个类
r = requests.get('http://python123.io/ws/demo.html')

# print(r.text)
demo = r.text
#解析demo的解释器
soup = BeautifulSoup(demo,'html.parser')

# print(soup.head)
# print(soup.head.contents)
# print(soup.body.contents)
print(len(soup.body.contents))
print(soup.body.contents[1])

     遍历儿子节点:  

for child in soup.body,children:
    print(child)

    遍历子孙节点

for child in soup.body.children:
    print(child)

  3、标签树的上行遍历(soup的父节点是空的)

   

import requests
from bs4 import BeautifulSoup
#BeautifulSoup是一个类
r = requests.get('http://python123.io/ws/demo.html')

# print(r.text)
demo = r.text
#解析demo的解释器
soup = BeautifulSoup(demo,'html.parser')

# print(soup.title.parent)
# print(soup.html.parent)
#a标签所有先辈的名字进行打印
for parent in soup.a.parents:
    if parent is None:
        print(parent)
    else:
        print(parent.name)

  4、标签树的平行遍历

  

    标签树的平行遍历条件:

      是发生在同一个父节点下的各节点之间

import requests
from bs4 import BeautifulSoup
#BeautifulSoup是一个类
r = requests.get('http://python123.io/ws/demo.html')

# print(r.text)
demo = r.text
#解析demo的解释器
soup = BeautifulSoup(demo,'html.parser')

print(soup.a.next_sibling)
print(soup.a.next_sibling.next_sibling)
print(soup.a.previous_sibling)
print(soup.a.parent)

    遍历后续节点:    

for sibling in soup.a.next_siblings:
    print(sibling)

    遍历前续节点:

for sibling in soup.a.previous_siblings:
    print(sibling)

    

    

 

转载于:https://www.cnblogs.com/fb1704011013/p/11110393.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值