BS4 相关知识
-
环境安装: pip install bs4
-
bs4 数据解析的流程
1.实例化一个BeautifulSoup对象,然后把即将被解析的页面源码数据加载到该对象中
- BeautifulSoup(fp,‘lxml’) 该方式是将本地存储的html文件进行数据解析
- BeautifulSoup(page_text,‘lxml’) 是将网络请求到的页面源码数据进行解析
2.调用Beautifulsoup对象中相关的属性和方法实现表亲定位和数据爬取
# 1 初始化beautifulsoup对象
page = BeautifulSoup(html, "lxml")
# 例如,查找标签h1,且其id为title的元素
head1 = page.find("h1", attrs={"id": "title"})
- 获取元素的几种方式
- tag法,利用自己初始化好的BeautifulSoup对象去定位元素
例如:
title = page.title
- 选择器写法
# 1#id # 2.classname # 3 后代选择器 page.select('#id') page.select('.classname') page.select('div>li')
- find 与 find_all(也可以写为findAll)
4.取值法 .string 与 .textdiv=page.find('div') name=page.find('a',class_='name') # 或者这样写 name = page.find('a',attrs={'class':'name'}) # 至于find_all是发现所有的匹配项并返回为一个列表对象
# .string与.text两者并不完全画等号,因为.string只会匹配到子代对象,但是.text可以匹配所有后代文本 name_info=name.text name_info=name.string
- tag法,利用自己初始化好的BeautifulSoup对象去定位元素