zoukankan      html  css  js  c++  java
  • 基于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)

        

        

  • 相关阅读:
    Python冒泡排序(4)
    Python冒泡排序(3)
    Python3默认递归最大深度是998
    Python利用递归函数和列表推导式实现快速排序
    天池比赛的文章--欢迎大家交流
    caffe学习笔记1
    网络压缩系列1:低秩逼近
    yolov1
    Windows下用Caffe跑自己的数据(遥感影像)
    基于灰度共生矩阵的纹理提取
  • 原文地址:https://www.cnblogs.com/fb1704011013/p/11110393.html
Copyright © 2011-2022 走看看