网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Python爬虫中遍历文档树的方法

小编给大家分享一下Python爬虫中遍历文档树的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

成都创新互联技术团队10年来致力于为客户提供网站设计、成都网站制作、成都品牌网站建设成都全网营销推广、搜索引擎SEO优化等服务。经过多年发展,公司拥有经验丰富的技术团队,先后服务、推广了上千多家网站,包括各类中小企业、企事单位、高校等机构单位。

遍历文档树

1.直接子节点:.contents .children属性

.content

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

#!/usr/bin/python3
# -*- coding:utf-8 -*-
 
from bs4 import BeautifulSoup
 
html = """
The Dormouse's story

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])

运行结果

[The Dormouse's story]
The Dormouse's story

.children

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

#!/usr/bin/python3
# -*- coding:utf-8 -*-
 
from bs4 import BeautifulSoup
 
html = """
The Dormouse's story

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)

运行结果


The Dormouse's story

2.所有子孙节点:.descendants属性

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

#!/usr/bin/python3
# -*- coding:utf-8 -*-
 
from bs4 import BeautifulSoup
 
html = """
The Dormouse's story

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
The Dormouse's story

3.节点内容:.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

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爬虫中遍历文档树的方法
网站地址:http://bjjierui.cn/article/jsijoj.html

其他资讯