您的位置:首页 > 编程语言 > Python开发

python_基于bs4html内容遍历

2017-07-02 09:37 183 查看
标签树的下行遍历

.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文本顺序的前续所有平行节点标签

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐