之前我们学过了 lxml库,今天我们一同学习Beautiful Soup库的使用
Beautiful Soup 是Python的一个HTML或XML的解析库,我们可以用它方便的从网页中提取数据。
它提供了一些简单的、python式的函数来处理导航、搜索、修改分析树等功能。beautiful soup自动将输入文档转换为Unicode编码,将输出文档转化为utf-8编码。
这时我们就不需要考虑编码的方式,只需要说明一下原始编码即可。
与lxml库一样,beautiful soup都是用来解析网页的python解释器。
beautiful soup 在解析时需要依靠解析器,他除了支持python标准库的HTML解析器,还支持一些第三方解析器(如lxml)。
使用前先进行安装:
pip3 install beautifulsoup4
下载的时候可能会超时,多试几次或者干脆挂个镜像
安装完成后,使用 bs4调用lxml解析器
# 解析器的调用
from bs4 import BeautifulSoup
soup = BeautifulSoup('Hellow python
', 'lxml')
print(soup.p.string)
运行结果:
from bs4 import BeautifulSoup
html = """
一段html文本
"""
# 调用 lxml 解析器
soup = BeautifulSoup(html, 'lxml')
# 标准化html中的HTML文本
print(soup.prettify())
# 获取 title 节点中的字符串
print(soup.title.string)
运行结果:
对于输出后的html文本
可以看到html、head等节点被自动补全了
对于我们获取的字符串:
使用节点选择器进行节点选择:
# 节点选择器
from bs4 import BeautifulSoup
html = """
一段html文本
"""
soup = BeautifulSoup(html, 'lxml')
# 选取title节点
print(soup.title)
# title节点属性
# 返回的结果是 bs4.element.Tag class
print(type(soup.title))
# 获取 title 节点中的字符串
print(soup.title.string)
# 获取head节点
print(soup.head)
# 获取 p节点 可以看到结果没有则返回None
print(soup.p)
运行结果: