当前位置:网站首页 > 编程语言 > 正文

bs4库使用(bs4库是什么)



bs4也就是beautifulsoup4,是python解析html文件的一个好用的第三方库,常被用于爬虫。

一、bs4的安装

 
  

阿里国内源安装:

 
  

二、bs4解析器

 
  

其中resp.text是得到的html文件,html.parser是python内置的html解析器,如果没有填写这个参数,会默认这个解析器。

bs4还支持一些第三方解析器:

解析器 使用方法 优势 劣势 Python标准库 BeautifulSoup(html,’html.parser’) Python内置标准库;执行速度快 在python2.7.3和3.2.2之前的版本中文档容错能力差 lxml html解析器 (需要额外导入)BeautifulSoup(html,’lxml’) 速度快;容错能力强 需要安装C语言库 lxml XML解析器 (需要额外导入)BeautifulSoup(html,[‘lxml’,’xml’])或BeautifulSoup(html,’xml’) 唯一支持解析xml 需要安装C语言库 htm5lib BeautifulSoup(html,’htm5llib’) 以浏览器方式解析,最好的容错性,生成html5 速度慢

三、bs4对html文件的处理

BeautifulSoup4将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种:

(1)Tag
(2)NavigableString
(3)BeautifulSoup
(4)Comment


(1)Tag : Tag通俗点讲就是HTML中的一个个标签,例如:

 
  

我们可以利用 soup 加标签名轻松地获取这些标签的内容,这些对象的类型是 bs4.element.Tag。
但是注意,它查找的是在所有内容中的第一个符合要求的标签。

对于 Tag,它有两个重要的属性,是 name 和 attrs:

 
  

(2)NavigableString:获取标签内部的文字用 .string 即可,例如:

 
  

(3)BeautifulSoup:表示的是一个文档的内容。

大部分时候,可以把它当作 Tag 对象,是一个特殊的 Tag,我们可以分别获取它的类型,名称,以及属性,例如:

 
  

(4)Comment:是一个特殊类型的 NavigableString 对象,其输出的内容不包括注释符号。

 
  

四、遍历文档树

(1).contents:获取Tag的所有子节点,返回一个list

 
  

(2).children:获取Tag的所有子节点,返回一个生成器

 
  

五、搜索文档树

1. find_all(name, attrs, recursive, text, kwargs)

(1)name参数:

字符串过滤:会查找与字符串完全匹配的内容

 
  

正则表达式过滤:如果传入的是正则表达式,那么BeautifulSoup4会通过search()来匹配内容

 
  

列表: 如果传入一个列表,BeautifulSoup4将会与列表中的任一元素匹配到的节点返回

 
  

方法: 传入一个方法,根据方法来匹配

 
  

(2)kwargs参数:

 
  

(3)attrs参数:

并不是所有的属性都可以使用上面这种方式进行搜索,比如HTML的data-*属性,我们可以使用attrs参数,定义一个字典来搜索包含特殊属性的tag:

 
  

(4)text参数:
通过text参数可以搜索文档中的字符串内容,与name参数的可选值一样。
text参数接受 字符串,正则表达式,列表

 
  

(5)limit参数:
传入一个limit参数来限制返回的数量
例如下列放回数量为2

 
  

2.find()
返回符合条件的第一个Tag
即当我们要取一个值的时候就可以用这个方法

 
  

六、CSS选择

(1)通过标签名查找

 
  

(2)通过类名查找

 
  

(3)通过id查找

 
  

(4)组合查找

 
  

(5)属性查找

 
  

(6)获取内容

 
  

到此这篇bs4库使用(bs4库是什么)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 小米蓝牙耳机怎么断开连接(小米蓝牙耳机怎么断开连接手机)2026-03-07 14:18:06
  • github在线代理(github在线代理加速网站)2026-03-07 14:18:06
  • 卡巴斯基怎么更新(卡巴斯基离线更新)2026-03-07 14:18:06
  • 什么叫拆包款(什么叫拆包款的意思)2026-03-07 14:18:06
  • bigboss源怎么用(bigboss源怎么下载)2026-03-07 14:18:06
  • 制作启动盘的u盘怎么恢复u盘空间大小(u盘启动盘制作工具如何恢复)2026-03-07 14:18:06
  • awv是什么意思(awnv是什么意思)2026-03-07 14:18:06
  • pllg是什么意思(pllg是什么意思中文翻译)2026-03-07 14:18:06
  • 指数与对数的关系视频(指数与对数的关系视频讲解)2026-03-07 14:18:06
  • 电脑桌面时钟代码(电脑桌面时钟代码怎么设置)2026-03-07 14:18:06
  • 全屏图片