导航
  • 报考
  • 备考
  • 政策

报考

备考

复习资料

政策

行业动态

python如何遍历文档树?这样的python用法别说你不会

环球青藤·2020-05-23 07:50:01浏览45 收藏13

请输入下面的图形验证码

提交验证

预约成功

我知道了
摘要 python可以为我们实现很多功能,不过你知道用python如何遍历文档树?这样的python用法别说你不会,如果你想学好python,那么本文内容一定要自己试试,毕竟实践出真知,那么用python如何遍历文档树?这样的python用法别说你不会。希望本文对您有所帮助。

1、python如何遍历文档树——直接子节点:

.contents .children属性

.content

Tag的.content属性可以将Tag的子节点以列表的方式输出

#!/usr/bin/python3

# -*- coding:utf-8 -*-

from bs4 import BeautifulSoup

html = """

The Dormouse's story

Once upon a time there were three little sisters; and their names were

,

Lacie and

Tillie;

and they lived at the bottom of a well.

...

"""

# 创建 Beautiful Soup 对象,指定lxml解析器

soup = BeautifulSoup(html, "lxml")

# 输出方式为列表

print(soup.head.contents)

print(soup.head.contents[0])

运行结果

[]

.children

它返回的不是一个列表,不过我们可以通过遍历获取所有的子节点。

#!/usr/bin/python3

# -*- coding:utf-8 -*-

from bs4 import BeautifulSoup

html = """

The Dormouse's story

Once upon a time there were three little sisters; and their names were

,

Lacie and

Tillie;

and they lived at the bottom of a well.

...

"""

# 创建 Beautiful Soup 对象,指定lxml解析器

soup = BeautifulSoup(html, "lxml")

# 输出方式为列表生成器对象

print(soup.head.children)

# 通过遍历获取所有子节点

for child in soup.head.children:

print(child)

运行结果

2、python如何遍历文档树——所有子孙节点:

.descendants属性

上面讲的.contents和.children属性仅包含Tag的直接子节点,.descendants属性可以对所有Tag的子孙节点进行递归循环,和children类似,我们也需要通过遍历的方式获取其中的内容。

#!/usr/bin/python3

# -*- coding:utf-8 -*-

from bs4 import BeautifulSoup

html = """

The Dormouse's story

Once upon a time there were three little sisters; and their names were

,

Lacie and

Tillie;

and they lived at the bottom of a well.

...

"""

# 创建 Beautiful Soup 对象,指定lxml解析器

soup = BeautifulSoup(html, "lxml")

# 输出方式为列表生成器对象

print(soup.head.descendants)

# 通过遍历获取所有子孙节点

for child in soup.head.descendants:

print(child)

运行结果

The Dormouse's story

3、python如何遍历文档树——节点内容:

.string属性

如果Tag只有一个NavigableString类型子节点,那么这个Tag可以使用.string得到子节点。如果一个Tag仅有一个子节点,那么这个Tab也可以使用.string方法,输出结果与当前唯一子节点的.string结果相同。

通俗点来讲就是:如果一个标签里面没有标签了,那么.string就会返回标签里面的内容。如果标签里面只有唯一的一个标签了,那么.string也会返回里面的内容。例如:

#!/usr/bin/python3

# -*- coding:utf-8 -*-

from bs4 import BeautifulSoup

html = """

The Dormouse's story

Once upon a time there were three little sisters; and their names were

,

Lacie and

Tillie;

and they lived at the bottom of a well.

...

"""

# 创建 Beautiful Soup 对象,指定lxml解析器

soup = BeautifulSoup(html, "lxml")

print(soup.head.string)

print(soup.head.title.string)

运行结果

The Dormouse's story

The Dormouse's story

以上就是《python如何遍历文档树?这样的python用法别说你不会》的全部内容,这些python的使用技术,为python的使用者带来了便利,环球网校的小编也祝大家python学习之路顺利。如果你想知道更多的python编程知识,可以点击下方资料下载链接。

展开剩余
资料下载
历年真题
精选课程
老师直播

注册电脑版

版权所有©环球青藤All Rights Reserved