python之BeautifulSoup 框架
介绍
BeautifulSoup 是 Python 的一个 HTML 或 XML 的解析库,我们可以用它来方便从网页中提取数据
安装
导入
使用
可以看出通过soup.prettify()方法对我们的字符串格式化,这样提高美观性,而且说明里面包含的库有利于我们提取内容。
匹配标签
结果为
可以看出只会匹配到第一个,且会匹配出包括标签的所有内容,那肯定还不够知足的。
string(s)
提取标签内的内容肯定是最重要的,其提供了一个 string(s) 方法。让我们看看怎么用。
输出结果是
由此看出 string 就是获取标签内的内容,strings 就是获取多个内容。
当内容仅有一个嵌套,依旧会获取那个嵌套里的内容。
当内容里还嵌套几个标签,就得用 strings,否则就会出错返回 None。
而且仅仅获取到的是第一个目标
如果想获取所有目标,就得用 find_all() 方法,之后会将。
直接子节点
输出为
可以看出 contents 属性是以列表方式输出,而 children 属性以列表迭代器输出,需要用 list 方式输出,不过两种方法都可以通过 list 输出。而且两者的功能是有点类似的。
父节点
输出为
通过 .parent 属性来获取某个元素的父节点
通过元素的. parents 属性可以递归得到元素的所有父辈节点
不能直接用 parents 属性,需要通过循环遍历输出
find_all 方法
结果为
以列表输出
find_all(name , attrs , recursive , text , **kwargs)
find_all 是爬虫常用的方法。
CSS 选择器
我们在写 CSS 时,标签名不加任何修饰,类名前加点,id 名前加 #,在这里我们也可以利用类似的方法来筛选元素,用到的方法是soup.select(),返回类型是list
这个也是用得比较频繁的!
标签名
类名
id 号
组合查找
属性查找
注意:select 完之后获得的是列表,一般用方法来获取它的内容。
很好理解,就不贴代码演示了!
接下来终于到了真正的实战啦!!!
not end
-python 学习笔记 -
领取专属 10元无门槛券
私享最新 技术干货