跳到主要内容

🌿 BeautifulSoup:Python 网页解析神器

BeautifulSoup 是一个用于从 HTML 或 XML 文档中提取数据的库,常配合 requests 使用,语法优雅,容易上手。


✅ BeautifulSoup 解决了什么问题?

直接使用正则表达式处理 HTML 太复杂、容易出错。BeautifulSoup 提供树形结构解析 HTML,使用标签名和属性轻松查找、提取页面内容:

  • 🧩 快速解析 HTML/XML
  • 🔍 按标签、属性、文本内容查找
  • 🌳 提供文档结构化导航

📦 安装

pip install beautifulsoup4

🔌 一起使用 Requests 获取网页

bs4 导入 BeautifulSoup
导入 requests

响应 = requests.获取("https://example.com")
= BeautifulSoup(响应.文本, "html.parser")
打印(.标题.文本)

🏷️ 查找标签

打印(.标题)           # 获取 <title> 标签
打印(.h1) # 获取第一个 <h1>
打印(.段落) # <p> 是 paragraph 段落

🔍 使用 find()find_all()

第一个链接 =.查找("a")
所有段落 =.查找全部("p")
打印(第一个链接["href"])
打印(len(所有段落))

🎯 通过属性查找标签

按钮 =.查找("button", {"类": "提交按钮"})
打印(按钮.文本)

🔁 遍历多个标签

链接列表 =.查找全部("a")
对于 链接链接列表:
打印(链接.文本, "->", 链接["href"])

🧼 获取纯文本

打印(.获取文本())

🎯 常见选择器方式(CSS 选择器)

.选择("div.类名")
.选择("ul > li")
.选择_one("p.intro")

📄 示例:爬取网页标题与超链接

导入 requests
bs4 导入 BeautifulSoup

响应 = requests.获取("https://example.com")
= BeautifulSoup(响应.文本, "html.parser")

打印("网页标题:",.标题.文本)
对于 链接.查找全部("a"):
打印(链接.文本.strip(), "->", 链接["href"])

🔚 小结

功能方法 / 属性
解析 HTMLBeautifulSoup(text, "html.parser")
查找单个标签find(tag)
查找多个标签find_all(tag)
选择器查找select(selector)
提取文本内容tag.text / get_text()
查找属性tag["属性名"]