BeautifulSoup解析的流程
- 实例化soup对象,传入html
- 利用方法属性进行解析
1. 实例化对象
1.1 本地传入html进行实例化
from bs4 import BeautfulSoup
fp = open("./test001.html","r",encoding="utf8",encoding="utf8")
soup = BeautfulSoup(fp,"lxml")
1.2 使用request库得到response进行实例化
soup = BeautfulSoup(response.text,"lxml")
2.利用方法属性进行解析
2.1得到第一个匹配对象
2.1.1 soup.TagName
得到第一个匹配的对象
div = soup.div
2.1.2 soup.find("TagName")
得到第一个匹配对象,效果与 2.1 相同
div = soup.find("div")
2.1.3 soup.find("TagName",attrs={})
得到第一个满足attrs的对象,其中attrs是一个字典
form=soup.find("form",attrs={"method":"post"})
2.2 得到所有匹配对象
2.2.1 soup.find_all("TagName",attrs={})
得到所有满足attrs的对象,其中attrs是一个字典
trs=form.find_all("tr",attrs={"class":"text-c"})
2.3 选择器select的用法
2.3.1 soup.select('选择器名称(id class 标签 等)')
返回的是 list 类型
tang = soup.select('.tang')
2.3.2 soup.select('选择器 > ul > li >a ')
返回选择器所选择目录下ul 下li 下a标签(>表示直接隶属)
2.3.3 soup.select('选择器 > ul a ')
返回选择器所选择目录下ul 所包含的所有a标签(空格表示标签下所有)
2.4 获取标签间文本文件
2.4.1 soup.TagName.text (或者 .get_text())
返回标签下所有文字内容
2.4.2 soup.TagName.string
返回标签下直接隶属的文字内容
2.4.3 soup.a["href"]
返回标签的属性