Python爬虫09_Requests用bs4进行数据解析
一、步骤解读
bs4进行数据解析
数据解析的原理:
1.标签定位
2.提取标签、标签属性中存储的数据值
bs4数据解析的原理:
1.实例化一个Beautifulsoup对象,并且将页面源码数据加载到该对象中
2.通过调用Beautifulsoup对象中相关的属性或者方法进行标签定位和数据提取
环境安装:
pip install bs4
pip install lxml
如何实例化BeautifulSoup对象:
from bs4 import Beautifulsoup
对象的实例化:
1.将本地的html文档中的数据加载到该对象中
fp = open(‘./test.html’,‘r’,encoding=‘utf-8’)
soup = BeautifulSoup(fp,‘lxml’)
2.将互联网上获取的页面源码加载到该对象中
page_text = response.text
soup = BeautifulSoup(page_text,‘lxml’)
提供用于数据解析的方法和属性:
soup.tagName:返回的是文档中第一次出现的tagName对应的标签
soup.find():
find(‘tagName’):等同于soup.div
属性定位
soup.find(‘div’,class_/id/attr=‘song’)
soup.find_all(‘tabName’):返回符合要求的所有标签(列表)
select:
select(‘某种选择器(id,class,标签…选择器)’),返回的是一个列表。
层级选择器:
soup.select(‘.tang > ul > li > a’)
二、源代码示例
from bs4 import BeautifulSoup
fp = open('E:\\Program\\Code\\Html\\惠泉酒坊\\index.html','r',encoding='utf-8')
soup = BeautifulSoup(fp,'lxml')
print(soup.a)
print('---------------------------------------------------------------------------------------------')
print(soup.div)
print('---------------------------------------------------------------------------------------------')
print(soup.find('div'))
print('---------------------------------------------------------------------------------------------')
print(soup.find('div',class_='c1'))
print('---------------------------------------------------------------------------------------------')
print(soup.select('.tu2'))
print('---------------------------------------------------------------------------------------------')
print(soup.select('.ai2 > ul')[0])