bs4数据解析基础
数据解析的原理:
- 标签定位
- 提取标签、标签属性中存储的数据
bs4数据解析的原理:
- 实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中
- 通过调用BeautifulSoup对象中相关属性或者方法进行标签定位和数据提取
环境安装:
- pip install bs4
- pip install lxml
如何实例化BeautifulSoup对象:
- 导入:from bs4 import BeautifulSoup
- 对象的实例化:
- 将本地的html文档中的数据加载到该对象中
-
fp = open('./test.html', 'r', encoding='utf-8') soup = BeautifulSoup(fp, 'lxml')
- .将互联网上获取到的页面源码加载到该对象中
-
page_text = response.text soup = Beautiful(page_text, 'lxml')
提供的用于数据解析的方法和属性:
- soup.tagName:返回的是文档中第一次出现的tagName对应的标签
- soup.find('tagName'):等同于soup.tagName
- soup.find('tagName',class_/id/attr='song') :寻找对应的标签 class_:要跟下划线 不跟的话是个关键字 跟的话是个参数名称
- soup.find_all('tagName'):返回符合要求的所有标签 返回一个列表
- soup.select:
- select('某种选择器(id, class, 标签...选择器)'),返回的是一个列表 (标签名不加任何修饰,类名前加点,id名前加 #)
- 层级选择器:
- soup.select('.tang > ul > li > a'): > 表示的是一个层级
- soup.select('.tang > ul > li a'): 空格 表示的是多个层级
- 获取标签之间的文本数据
- soup.a.text/string/get_text()
- text/get_text():可以获取某一个标签中所有的文本内容
- string:只可以获取标签下面直系的文本内容
- 获取标签中的属性值:
- soup.a['href']