BeautifulSoup的重要操作
BeautifulSoup相关概念总结
:https://www.cnblogs.com/pythonywy/p/11134481.html
css基础以及选择器基础
:https://www.cnblogs.com/pythonywy/p/11266221.html
css选择器进阶
:https://www.cnblogs.com/pythonywy/p/11276513.html
一.BeautifulSoup的重要操作
-
解析页面
- 最常用rp_lxml= BeautifulSoup(response.text,'lxml')其他可以转至概念
-
提取元素
主要有4大元素
- Tag: HTML 中的一个个标签
- NavigableString:可以遍历的字符串
- BeautifulSoup:BeautifulSoup 对象表示的是一个文档的全部内容.大部分时候,可以把它当作 Tag 对象,是一个特殊的 Tag
- Comment:Comment 对象是一个特殊类型的 NavigableString 对象,其实输出的内容仍然不包括注释符号。
-
元素操作
二.Tap对象相关操作
1.对于tap的选取
1.find
使用
re_lxml.find('css选择器')
重点
只选择第一个出现的
2.select
使用
re_lxml.select('css选择器')
重点
会把满足CSS选择器所有内容都显示出来,输出为列表的形式
3.直接操作
使用
re_lxml.标签名.标签名而不是用css选择器
重点
只选择第一个出现的
4.find_all
会把满足CSS选择器所有内容都显示出来,输出为列表的形式
但是有几个优点
-
使用多个指定名字的参数可以同时过滤tag的多个属性
rp_lxml.find_all('属性1','属性2')
-
要某个标签中其中某个属性
rp_lxml.find_all('标签名',class_='属性')
-
定义一个字典参数来搜索包含特殊属性的tag
rp_lxml.find_all(attrs={'属性名':'属性值'})
2.对于tap的操作
1.标签之间的转换
2.选取的元素相关操作
-
tap.text:内容的文本
-
tap.name:标签名字
-
tap.attrs:标签的属性
-
tap..标签p.attrs:标签内标签p的属性
-
tap.['属性名']:标签的指定属性对应的内容
-
tap.标签p.['属性名']:标签内标签p的指定属性属性
-
tap.get('属性名'):标签的指定属性对应的内容
-
tap.标签p.get('属性名'):标签内标签p的指定属性属性
三.NavigableString对象相关操作
NavigableString.string即可获取标签内部的文字
四.BeautifulSoup对象相关操作
他是一种特殊的Tap所有tap可以的操作他都可以
rp_lxml.attrs为{}
rp_lxml.name为[document]
剩下的可以去尝试不过个人感觉没啥意义
五.Comment对象相关操作
我觉得吧一个可以用用就是判断他是不是这个数据类型
print(type(未知对象.string))看他是不是comment对象