今天继续给大家介绍Python 爬虫相关知识,本文主要内容是Python bs4解析库使用详解。
bs4是Python的一个第三方库,主要用于从HTML或者是XML文档中快速提取数据。bs4是BeautifulSoup库的简称,最后的4是版本号。要想使用bs4进行数据解析,就必须先安装bs4,安装命令为:
安装完毕后,在Python程序中导入时,可添加代码:
接下来我们就可以使用bs4来进行HTML文档数据解析啦。
此外,在使用bs4库时,我们还需要指定文档解析器,我们可以选择Python自带的html.parser,但是该解析器执行速度较慢。我们还可以选择lxml和html5lib,这两个解析器执行速度比较快,但是需要安装Python的第三方库。
在本文中,我们选择lxml作为BeautifulSoup的解析器,安装需要执行命令:
而从网络中数据读取代码如下所示:
接下来,我们就介绍Python bs4库的使用。
(一)基本标签查找
在引入(读取)数据后,执行命令:
可以获取第一个tagName标签,例如,执行命令:
达到与soup.a同样的效果。但是soup.find()函数还支持属性定位,及查找指定属性的标签,例如:
就可以查找第一个属性为asd的a标签。注意这里的“class_”,在最后的时候,还存在一个下划线,但是如果是其他的属性,就不需要下划线。
以上是找到第一个符合条件的标签,如果我们想查找所有符合条件的标签,就需要使用soup.find_all()函数。
除了以上函数外,bs4库还支持soup.select()函数,该函数可以查找指定class属性的标签,该函数使用如下所示:
该函数在使用时输入是一个字符串,并且字符串第一个字符是一个点号,之后跟着要查找的类名,上述代码就可以查找所有类是item的标签,该函数返回结果是一个列表。
(二)递进关系标签查找
soup.select()函数还支持递进关系的查找。在HTML代码中,标签与标签之间总是有嵌套的关系,我们经常需要根据这种嵌套关系查找指定的标签。soup.select()方法查找指定内容示例如下:
(三)获取标签间的文本数据
在获取到指定标签号,有时我们还需要获取标签中的文本数据。获取标签中的文本数据有以下三种方法:
上述三种方法,都可以获取soup.a查找出来的a标签中的文本内容,但是soup.a.text和soup.a.get_text()函数获取的内容包括该标签下所有子标签之间的文本内容;而soup.string则获取的是该标签下的文本内容,不包括该标签下子标签中间的文本内容。
(四)获取标签中的属性值
有时,我们还需要获取标签中的属性值。获得属性值可以使用中括号,然后把属性名称字符串放入到中括号里面,例如:
上面两个代码分别可以获取指定标签中的指定属性值,其中第二行代码之所以还有一个[0]是因为soup.select()函数返回结果是一个列表,因此我们需要首先将列表中的标签取出后然后再取出该标签的指定属性值。
最后,我们再举几个Python bs4库使用的示例,代码如下所示:(输出在注释中)
test.html文件中内容如下所示:
原创不易,转载请说明出处:https://blog.csdn.net/weixin_
到此这篇bs4库安装(bs4库作用)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/14161.html