python_基于bs4html内容遍历

标签树的下行遍历

.contents(内容)         子节点的列表,将<tag>所有的儿子节点存入列表

.childern(孩子)          子节点的迭代类型,与.contents类似,用于循环遍历儿子节点

.descendants (后裔)子孙节点的迭代类型,包含所有子孙节点,用于循环遍历

from bs4 import BeautifulSoup
import requests
try:
    r=requests.get("http://python123.io/ws/demo.html",timeout=30)
    r.raise_for_status()
    r.encoding=r.apparent_encoding
    demo=r.text
    soup=BeautifulSoup(demo,'html.parser')
    print('head标签',soup.head)#<head><title>This is a python demo page</title></head>
    #head内容
    print('head标签的内容',soup.head.contents)
    print('body标签的内容',soup.body.contents)
    #遍历子节点
    for child in soup.body.children:
        print(child)
    #遍历子孙节点
    for descendants in soup.body.descendants:
        print('子孙节点',descendants)
except:
    print("有点问题")

标签树的上行遍历

.parent 节点的父亲标签

.parents 节点先辈标签的迭代类型,用于循环遍历先辈节点

from bs4 import BeautifulSoup
import requests
try:
    #接收响应
    r=requests.get("http://python123.io/ws/demo.html",timeout=30)
    #异常
    r.raise_for_status()
    #编码
    r.encoding=r.apparent_encoding
    #接收返回的html 用BeautifulSoup 进行处理
    demo=r.text
    soup=BeautifulSoup(demo,'html.parser')
    print(soup)
    #打印 标签树的上行遍历
    for parent in soup.a.parents:
        if parent is None :
            print(parent)
        else:
            print('a',parent.name)
except:
    print('异常')

标签树的平行遍历(平行遍历发生在同一节点下):

.next_sibling           返回按照html文本顺序的下一个平行节点标签

.previous_sibling    返回按照HTML文本顺序的上一个平行节点标签

.next_siblings          迭代类型,返回按照HTML 文本顺序的后续所有平行节点标签

.previous_siblings  迭代类型,返回按照HTML文本顺序的前续所有平行节点标签




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值