beautifulsoup库的作用

2024-05-13

1. beautifulsoup库的作用

BeautifulSoup库的作用如下:
BeautifulSoup是python的一个库,其提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。BeautifulSoup4和lxml一样,BeautifulSoup也是一个HTML/XML的解析器,主要的功能也是如何解析和提取HTML/XML数据。

BeautifulSoup库的特点
BeautifulSoup库是灵活又方便的网页解析库,处理高效,支持多种解析器。利用它不用编写正则表达式即可方便地实现网页信息的提取。prettify()方法可以将代码格式搞的标准一些,用soup.prettify()表示。在PyCharm中,用print(soup.prettify())来输出。
BeautifulSoup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,如果我们不安装它,则Python会使用Python默认的解析器,lxml解析器更加强大,速度更快,推荐使用lxml解析器。

beautifulsoup库的作用

2. BeautifulSoup基本使用

 BeautifulSoup 官方文档 介绍:BeautifulSoup 是一个可以从HTML或XML文件中提取数据的Python库。使用BeautifulSoup更多方便,避免使用正则表达式容易出错,提高效率。
   BeautifulSoup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,其中一个是 lxml。以下为BeautifulSoup官方文档对支持的解析器优缺点对比。
   推荐使用lxml解释器,效率更高。 注意:不同的解析器返回不同的结果 
   通过解析器,BeautifulSoup可以传入一段字符串或文件。
   Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种:  Tag , NavigableString , BeautifulSoup , Comment 。接下来使用以下文档进行说明。
   可以看到a点只是返回第一个,如果需要历遍全部则需要用find_all('a')。   tag有多种属性,其中两个最重要的就是name和attributes。name一般返回标签本身(soup返回document), 注意,tag属性操作方法和字典一样。 
   上面说到节点选择可以直接利用标签,如标签用soup.head,也可通过name和attrs可以直接获取属性,操作和字典一样。以上是直接获取的方式,当想要获取标签的子节点、父节点、兄弟节点则需要通过另外的方法。
    .children 是一个llist生成器,可以对子节点进行历遍循环
    .descendants 是返回所有子孙节点,比较children和descendants的输出区别