Python爬虫中的BeautifulSoup库函数详解

2019-08-14

极光小编

Beautiful Soup 是利用Python编写的html/xml的解析器,能完美解决一些不规范标记且生成剖析树,不仅有简单常用的导航,还有搜索和修改剖析树的操作,能够减少我们的编程时间。

安装Python的包管理器pip后,就还可以执行下面的命令了

pip install beautifulsoup4

使用

beautifulsoup在代码中使用时需要引入,方式:from bs4 import BeautifulSoup

基本用途

把HTML文档解析为文档树,返回bs对象

利用get_text()函数返回除标签、链接、段落之外的文本内容的文档。

find以及findAll函数根据标签和属性过滤html页面,能多标签,属性是字典类型,自然还可以多值

当利用keyword参数过滤时,假设key为class,则要写成class_=“green”

bs对象能直接调用子标签返回,只是不大灵活,如果页面结构产生变化,可能会造成Python爬虫程序无法正确返回结果。

子代标签就是父标签的下一级,而后代标签是父标签下所有级别的标签

还可以处理兄弟标签,向前处理或是向后处理,返回的列表不包括自身对象

想要让爬虫更加稳定,最好的方式还是让标签的选择更加具体,也就是尽可能多的指定属性。

也可以处理父标签

大多数支持字符串参数的函数,都可以使用正则表达式来实现

还可以利用myTag.attrs返回所有属性,为字典类型

BeautifulSoup允许把特定函数类型当做findAll函数的参数,如使用lambda表达式。唯一的限制就是这些函数必须把一个标签当做参数且返回结果是布尔类型。BeautifulSoup用这个函数来评估它遇到的每个标签对象,最后把评估结果为真的标签保留,把其他标签删除。

BeautifulSoup详细的文档描述还可以参见BeautifulSoup中文文档

BeautifulSoup库并不是我们在写爬虫时唯一的选择,如果不能满足项目需求,我们也可以使用其他的库,比如lxml、HTML parser(python自带)

关注极光公众号

免费领取更多福利