python_基于bs4html内容遍历

来源:互联网 发布:播音艺考生软件 编辑:程序博客网 时间:2024/06/05 07:29

标签树的下行遍历

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

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

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

from bs4 import BeautifulSoupimport requeststry:    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 BeautifulSoupimport requeststry:    #接收响应    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文本顺序的前续所有平行节点标签




原创粉丝点击