Python网络爬虫实战:BeautifulSoup库安装与基础用法详解

沈知远
沈知远
发布时间:2026-10-13| 5人浏览过
原创

本文详细介绍Python中BeautifulSoup库的安装方法及基础使用。通过PyCharm自动安装bs4库,并演示如何将HTML源码转换为BeautifulSoup对象。文章解析了HTML标签的层级结构,讲解如何提取title等节点信息,并对比多种属性访问方式,帮助初学者快速掌握网页数据抓取的核心技巧。

接下来介绍一个在后续爬虫开发中极其常用且高效的库——BeautifulSoup。

该库名称源自刘易斯·卡罗尔《爱丽丝梦游仙境》中的同名诗歌,由素甲鱼演唱。正如诗中所言,BeautifulSoup致力于化繁为简,它通过定位HTML标签来格式化并整理复杂的网络信息,利用简洁易用的Python对象呈现XML或HTML的结构化数据。

由于BeautifulSoup并非Python标准库,使用前需单独安装。为简化操作,这里推荐直接在PyCharm集成开发环境中进行自动下载和导入。

首先打开PyCharm主界面,依次点击File -> Settings -> Project: untitled -> Project Interpreter,参考下图所示路径操作:



在界面中找到绿色的加号按钮并点击,随后会弹出如下窗口(注意:PyCharm在此步骤有时响应较慢,可能持续刷新界面):


在搜索框中输入“bs4”,从列表中选择对应的bs4库并点击安装,具体操作如下图所示:


至此,BeautifulSoup库的安装工作已完成,接下来即可开始使用。

官方文档对该库的解释非常详尽,建议阅读:点击打开链接

下面简要介绍该库的一些核心功能。

首先通过一个示例代码开始学习:

#coding:utf - 8
from urllib.request import urlopen
from bs4 import BeautifulSoup
 
html = urlopen("http://tieba.baidu.com/")
bsObj=BeautifulSoup(html,"lxml")  #将html对象转化为BeautifulSoup对象
print(bsObj.title)  #输出这个网页中的标题 
执

运行上述程序,输出结果为:<title>百度贴吧——全球最大的中文社区</title>。 首先分析代码bsObj=BeautifulSoup(html,"lxml")的作用。该语句将html对象传入BeautifulSoup构造函数,将其转换为BeautifulSoup对象。第二个参数“lxml”指定了解析器,具体细节可查阅官方文档,此处只需知晓保留该参数即可。这样,HTML对象便成功转换为BeautifulSoup对象。 接着了解BeautifulSoup对象的结构。转换后的结构如下: html-><html><head>....</head><body>.....</body></html> ---head-><head><title>百度贴吧--全球最大的中文社区<title></head>

---title-><title>百度贴吧--全球最大的中文社区</title>

----body->.........

上述页面结构中省略了部分无关元素,旨在展示这种层次化的数据结构。

由此可见,BeautifulSoup对HTML对象进行了层级化处理,逐层细化原网页标签,便于后续操作。这意味着,只要目标信息附近存在标记(如div、li等标签,或class、id等属性),即可提取任意HTML或XML文件的节点信息。

对于前述bsObj.title提取标题的操作,由于网页中通常只有一个title标签,因此可以直接获取。这类似于学校中唯一的学号,通过唯一标识符可直接定位目标,避免歧义。

针对bsObj.title,存在多种替代获取方案:

  • bsObj.html.head.title
  • bsObj.html.title
  • bsObj.head.title

上述代码体现了对网页元素的精细化搜索。可以这样理解:若已知某人属于计科院,直接在该部门内搜索即可。在网页结构中,bsObj.head中的head相当于“计科院”(网页头部),title位于其中,因此使用bsObj.head.title同样有效。其他代码可依此类推。

BeautifulSoup是一个对象,因此可以通过运算符“.”提取其属性。

例如,bsObj.title用于获取html的标题对象,bsObj.title.name用于获取标题的名称……

此处仅作简要介绍,后续章节将继续深入探讨BeautifulSoup的高级使用方法。

以上就是本文的全部内容,希望对各位的学习有所帮助,欢迎大家继续支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。