BeautifulSoup数据解析
1、安装
pip install bs4
2、导入
from bs4 import BeautifulSoup
3、提取子页面的URL
子页面的URL如果开头是/,直接在前面拼接上域名
子页面的URL如果不是/开头,此时需要找到主页面的URL,去掉最后一个/后面的所有内容,再和当前获取的URL拼接。
4、使用BeautifulSoup
(1)解析
res = requests.get(url)
res.encoding = "utf-8" # 解决乱码问题
# 初始化BeautifulSoup对象
bs = BeautifulSoup(res.text,"html.parser") # res.text是提取的源代码
注:这里一般只使用“utf-8”和"gbk"两种编码格式
(2)查找
bs.find("标签名") # 查找第一个标签
bs.find("标签名",attrs={"属性名":"属性值"}) # 查找属性名等于属性值的标签
# find与find_all用法是类似的
bs.find_all("标签名") # 查找所有指定标签
# 按层查找
div = bs.find("标签名")
a = div..find("标签名")
(3)取值
a.text() # 取文本
a.get("属性名") # 取属性