BeautifulSoup库
一、库介绍
BeautifulSoup是python的一个HTML/XML的解析器,使用方便,速度偏慢
主要功能:
- 解析和提取HTML/XML数据
- 基于HTML DOM,可以载入整个文档,解析整个DOM树
- 支持CSS选择器
二、Python库BeautifulSoup的安装
pip安装:
进入python安装目录的scripts目录输入:
pip install beautifulsoup4
安装lxml解析器:
pip install lxml
三、BeuatifulSoup使用流程
(1)导入模块
from bs4 import BeautifulSoup
(2)基本用法
soup=BeautifulSoup('hello world!', 'lxml') #自动添加标签
print(soup.prettify()) #把要解析的字符串按标准的缩进格式输出
运行结果:
四、选择器的用法
(1)节点选择器
print(soup.title) #访问<title>标签的内容
print(soup.title.name) #查看标签的名字
print(soup.title.text) #查看标签的文本
print(soup.title.string) #获取文本内容
print(type(soup.title)) #获取数据类型
print(soup.head.title.string) #嵌套选择
print(soup.p.children) #获取子节点
for i,child in enumerate(soup.p.children):
print(i,child)
print(soup.p.descendants) #获取子孙节点
for i,child in enumerate(soup.p.descendants):
print(i,child)
print(soup.a.parent) #选择直接父节点元素
运行结果:
(2)方法选择器
find_all()
print(soup.find_all('a')) #查找所有<a>标签
print(soup.find_all(['a', 'b']) ) #同时查找<a>和<b>标签k3">
import re
print(soup.find_all(href=re.compile("elsie"))) #查找href包含特定关键字的标签
部分运行截图:
注:find()与find_all()用法完全一致,只是查询范围不同
(3)CSS选择器
print(soup.select('title')) #通过标签名查找
print(soup.select('.story')) #通过类名查找
print(soup.select('#link1')) #通过id名查找
for a in soup.select('p >a'): #列表迭代
print(a)
运行结果: