菜鸟笔记
提升您的技术认知

Beautiful Soup用法

阅读 : 50

Beautiful Soup是Python的一个网页解析库,处理快捷; 支持多种解析器,功能强大。教程细致讲解Beautiful Soup的深入使用、节点选择器、CSS选择器、Beautiful Soup4的方法选择器等重要知识点,是学好爬虫的基础课程。

Beautiful Soup基本使用

学习目标

  1. 掌握Beautiful Soup初始化的方式
  2. 掌握Beautiful Soup初始化参数的含义

1. 使用Beautiful Soup的步骤

简单的使用Beautiful Soup,大致可以分为三步:

  1. 导入Beautiful Soup类
    from bs4 import BeautifulSoup
    
  2. 初始化参数,需要传递两个参数:HTML代码和HTML解析器
    soup = BeautifulSoup(markup, features)
    
  3. 获取Beautiful Soup实例对象,通过操作对象来获取解析结果并提取数据
    soup.prettify()
    soup.title
    

2. 初始化Beautiful Soup对象

bs4库中导入BeautifulSoup类实例化一个对象。

from bs4 import BeautifulSoup
soup = BeautifulSoup(markup, features)

在实例化的过程中,需要给BeautifulSoup这个类传递两个参数: markupfeatures

1. 第一个参数:markup

  • 参数解释:被解析的HTML字符串或文件内容,也就是说markup是用来接收需要解析的HTML字符串或者文件内容的。
  • 使用方式两种:
  1. 使用字符串变量。直接将html数据以字符串的形式传入。
    # 使用第一步的html_str字符串变量
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(html_str)
    
  2. 使用open()函数打开文件,将html数据以文件流的形式传入。
    # 假设将html_str字符串写入了index.html中
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(open(index.html))
    

2. 第二个参数:features

  • 参数解释:解析器的类型
  • 使用方式有两种:
  1. 指定解析器,BeautifulSoup选择指定的解析器来解析文档
    # 指定lxml作为解析器
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(html_str, 'lxml')
    
  2. 未指定解析器,BeautifulSoup选择最默认的解析器来解析文档
    # 解析html_str选择最默认的解析器
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(html_str)
    

3. 总结

如何使用Beautiful Soup解析HTML文档?

这个非常的简单,只需要使用Beautiful Soup类初始化一个对象,然后操作这个对象就可以了。

需要注意的是:在初始化的对象的时候,需要给Beautiful Soup类传递两个参数,HTML代码和HTML解析器

这部分的内容作为今后使用Beautiful Soup4的基础,需要同学熟练掌握这部分的内容。