bs4进行数据解析
1、数据解析原理:
(1)标签定位
(2)提取标签、标签属性中存储的数据值
2、bs4数据解析原理:
(1)实例化一个beautifulsoup对象,并且将页面源码数据加载到该对象中
(2)通过调用beautifulsoup对象中相关的属性或者方法进行标签定位和数据提取
3、bs环境安装
pip install bs4
pip install lxml
4、实例化beautifsoup对象
(1)导入模块:
from bs4 import BeautifulSoup
(2)对象的实例化
(a)、将本地的html文档中的数据加载到该对象中
# 将本地的html文档中的数据加载到该对象 fp = open('./test.html','r',encoding='utf-8') soup = BeautifulSoup(fp,'lxml')
(b)、将互联网上获取的页面源码加载到对象中
# 将互联网上获取的页面源码加载到对象中 page_text = response.text soup = BeautifulSoup(page_text,'lxml')
1、 (1)soup.tagName: 返回的是文档中第一次tagName标签 (2)soup.find(): ①find('tagName')等同于soup.tagName ②属性定位: soup.find(tagName,class_/id/attr="") (3)soup.find_all('tagName'): 返回符合要求的所有标签(列表) 2、select (1)select('某种选择器(id,class,标签....选择器)'), 返回的是一个列表 ex:soup.select('.logo') (2)层级选择器: soup.select('.top_nav__item > ul > li > a') '>'表示的是一个层级 soup.select('.top_nav__item > ul > li a') ' '(空格)表示多个层级 3、获取标签之间的文本数据 soup.a.text/string/get_text() ex:soup.select('.top_nav__item > ul > li a')[0].get_text() (1)text/get_text():可获取某一个标签中的所有的文本内容 (2)string:只可以获取该标签下面的直系文本里内容 4、获取标签中属性值 ex:soup.select('.top_nav__item > ul > li a')[0]['href']