使用 BeautifulSoup 进行网页抓取
了解如何使用 Python 从网站提取数据
使用 BeautifulSoup 进行网页抓取 是 CoddyKit 上的免费 Python Academy 课时。 这是第 5 节课,共 5 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Python Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Python Academy 课程共包含 5 节课。
网页抓取简介
网页抓取是从网站提取数据的过程。Python 的 BeautifulSoup 库可以轻松地解析和遍历 HTML 或 XML 文档。
在本课程中,您将学习如何使用 BeautifulSoup 进行网页抓取。

安装 BeautifulSoup
要安装 BeautifulSoup 和所需的 requests 库,请使用以下命令:
pip install beautifulsoup4pip install requests
安装完成后,您就可以在 Python 脚本中导入它们:
# Importing BeautifulSoup
from bs4 import BeautifulSoup
import requests
print("BeautifulSoup imported successfully")获取网页
您可以使用 requests 库获取网页:
# Fetching a web page
response = requests.get("https://example.com")
print(response.text) # Outputs the HTML content使用 BeautifulSoup 解析 HTML
BeautifulSoup 提供了用于解析和遍历 HTML 文档的方法:
# Parsing HTML
html_content = "<html><body><h1>Hello, World!</h1></body></html>"
soup = BeautifulSoup(html_content, "html.parser")
print(soup.h1.text) # Outputs: Hello, World!查找元素
BeautifulSoup 提供了 find() 和 find_all() 等方法来定位元素:
# Finding elements
soup = BeautifulSoup("<html><body><p class='content'>Hello!</p><p>World!</p></body></html>", "html.parser")
element = soup.find("p", class_="content")
print(element.text) # Outputs: Hello!提取链接
您可以从网页中提取所有链接(<a> 标签):
# Extracting links
html = "<html><body><a href='https://example.com'>Example</a></body></html>"
soup = BeautifulSoup(html, "html.parser")
links = soup.find_all("a")
for link in links:
print(link['href']) # Outputs: https://example.com提取表格
BeautifulSoup 可以轻松地从 HTML 表格中提取数据:
# Extracting table data
html = "<table><tr><td>Row 1</td></tr><tr><td>Row 2</td></tr></table>"
soup = BeautifulSoup(html, "html.parser")
rows = soup.find_all("tr")
for row in rows:
print(row.text) # Outputs: Row 1, Row 2处理缺失元素
BeautifulSoup 提供了可以安全处理缺失元素的方法:
# Handling missing elements
soup = BeautifulSoup("<html><body></body></html>", "html.parser")
element = soup.find("p")
print(element) # Outputs: NoneBeautifulSoup 中的常见错误
以下是需要避免的一些错误:
- 没有使用适当的 HTML 解析器(例如
html.parser或lxml)。 - 没有使用适当的请求头,就从被阻止或受保护的网站获取内容。
- 抓取过于频繁,这可能导致您的 IP 被封禁。
我们学到了什么?
在本课程中,您学习了:
- 如何安装和导入 BeautifulSoup 与 requests。
- 如何获取、解析和遍历 HTML 内容。
- 如何提取链接和表格等特定元素。
- 如何安全地处理缺失元素。
做得很好!接下来让我们学习下一个主题。

用 AI 导师学习 Python — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 76
- 课程
- 320
常见问题解答
「使用 BeautifulSoup 进行网页抓取」课时是免费的吗?
是的 — 「使用 BeautifulSoup 进行网页抓取」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Python Academy 课程的其余内容,请升级到 CoddyKit PRO。 Python Academy 课程共包含 5 节课。
「使用 BeautifulSoup 进行网页抓取」这节课中我会学到什么?
了解如何使用 Python 从网站提取数据 你通过在浏览器中直接运行的动手代码来练习 Python Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Python Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Python Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 5 节课,共 5 节。
「使用 BeautifulSoup 进行网页抓取」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Python Academy 课中编写并运行代码吗?
能。每节 Python Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 使用 Pandas 进行数据分析
- 使用 Matplotlib 进行数据可视化
- 使用 NumPy 进行数值计算
- 使用 requests 处理接口
- 使用 BeautifulSoup 进行网页抓取