第三方库其之二——beautiful soup 美丽汤
不要问我这个名字为什么这么怪。。。。你见过夫妻肺片是需要牺牲一对夫妻么。。。。。。
beautiful soup用于分析爬取到的页面信息!!!
终于不用那么low的只是爬上爬下了!
好耶.jpg
官网地址
使用
bs可以解析文件
例如下面是解析html文件
结果就是会产生标准的html文件
其他格式
标签tag属性
获取标签属性值
string属性
html内容迭代遍历
先来看看html基本结构
对子节点的下行遍历
对某个节点的上行遍历
对某个节点进行平行遍历
首先我们要明白什么是平行节点
只有在同一父节点之下的两个标签才是平行关系
爹要一样哦~
注意
平行节点不止会遍历标签节点而且navigableString类型也会被遍历
又例如字符与标签被放到同一个标签中
一般写法
总结
信息的抓取
首先我们先来了解一下信息标记界的三大巨头
巨头一:xml
实例
巨头之二:json
“”声明字符串类型
当你使用数字时请直接写数字
另外一对多时,使用中括号
但是有的时候需要我们使用嵌套,也就是json里面套个json。
这个时候需要我们用大括号了~
三种情况小结
巨头之三:YAML
yaml的特点就是简洁
它的key没有类型,而且嵌套是通过缩进来实现的
缩进表示所属关系,和python非常相似(好吧其实完全一样
使用减号表示并列信息也就是or的关系,表示这个键可能的取值
那信息太多咋整
没关系,yaml支持整块数据跨行只需要使用 | 这个符号
小结
实例
这三者的一般用途如下
信息抓取实践
通常我们把这两个方法结合使用
这两个方法看起来挺抽象的
实际使用其实就是findall方法
这里出现了find_all方法我们来简单了解下
findall返回的是一个列表值
name属性:
利用正则表达式检索
re库就是正则表达式库,它的作用就是实现关键词查找
compile是指开头为b的标签
attrs属性
recursive属性 是否查找子孙节点 默认为true也就是会遍历子孙节点找到所有的子孙
String属性:检索所有符合的字符串域
findall简写形式直接加括号
扩展soup的方法
至此,基本的使用便告一段落。
点击此处进入下一节:python爬虫(二 )实例——beautiful soup爬取大学排名