bs4进行数据解析
原理:
1.实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中
2.通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取一
环境安装:
-pip install bs4
-pip install lxml
如何实例化BeautifulSoup对象:
from bs4 import BeautifulSoup
对象的实例化:
1.将本地的html文档中的数据加载到该对象中
2.将互联网上获取的页面源码加载到该对象中
一、bs4实例化本地html文件
from bs4 import BeautifulSoup
if __name__ == "__main__":
fp = open('./优快云.html','r',encoding='UTF-8')
soup = BeautifulSoup(fp,'lxml')#实例化对象
print(soup.div) #soup.tagName返回的是文档中第一次出现的tagName标签
print(soup.find('div')) #soup.find(tagName)等同于soup.tagName
print(soup.find('div',id='app'))#属性定位soup.find(tagName,class_/id/attr='要查找的值')
print(soup.find_all('a'))#找到所有的tagName标签,返回列表,也可以进行属性定位
print(soup.select('.def'))#select('某种选择器(id/class/标签...选择器)'),返回列表
#print(soup.select('选择器'>'层级1'>'层级2')) 其中">"表示一个层级,返回列表,如果有多个层级就把">"改成空格
print(soup.select('.def')[0].text)#用.text或.string或.get_text()提取文本
#text/get_text()可以获取某一标签中所有的文本内容,而string只可以获取改标签下直系的文本内容
print(soup.select('.def')[0]['class'])#获取某一标签的某一属性值