Learn AI with Python · 课时

使用 BeautifulSoup 进行网页抓取

了解如何使用 Python 从网站提取数据

第 5 / 5 课11 个步骤

使用 BeautifulSoup 进行网页抓取 是 CoddyKit 上的免费 Learn AI with Python 课时。 这是第 5 节课,共 5 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn AI with Python 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn AI with Python 课程共包含 5 节课。

网页抓取简介

网页抓取是从网站中提取数据的过程。Python 的 BeautifulSoup 库可以轻松解析和浏览 HTML 或 XML 文档。

在本课程中,您将学习如何使用 BeautifulSoup 进行网页抓取。

使用 BeautifulSoup 进行网页抓取 — 插图 1

安装 BeautifulSoup

要安装 BeautifulSoup 和必需的 requests 库,请使用以下命令:

pip install beautifulsoup4
pip 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: None

使用 BeautifulSoup 时的常见错误

以下是需要避免的一些错误:

  • 未使用合适的 HTML 解析器(例如 html.parser 或 lxml)。
  • 未设置适当的请求头,就从被屏蔽或受保护的网站获取内容。
  • 抓取频率过高,这可能导致您的 IP 被封禁。

我们学到了什么

在本课中,您学习了:

  • 如何安装并导入 BeautifulSoup 和请求库。
  • 如何获取、解析和浏览 HTML 内容。
  • 如何提取链接和表格等特定元素。
  • 如何安全地处理缺失的元素。

做得很好!接下来让我们学习下一个主题。

使用 BeautifulSoup 进行网页抓取 — 插图 11
免费开始

用 AI 导师学习 Python — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
53
课程
225

常见问题解答

「使用 BeautifulSoup 进行网页抓取」课时是免费的吗?

是的 — 「使用 BeautifulSoup 进行网页抓取」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn AI with Python 课程的其余内容,请升级到 CoddyKit PRO。 Learn AI with Python 课程共包含 5 节课。

「使用 BeautifulSoup 进行网页抓取」这节课中我会学到什么?

了解如何使用 Python 从网站提取数据 你通过在浏览器中直接运行的动手代码来练习 Learn AI with Python,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Learn AI with Python 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Learn AI with Python 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 5 节课,共 5 节。

「使用 BeautifulSoup 进行网页抓取」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Learn AI with Python 课中编写并运行代码吗?

能。每节 Learn AI with Python 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 Pandas 进行数据分析
  2. 使用 Matplotlib 进行数据可视化
  3. 使用 NumPy 进行数值计算
  4. 使用 requests 处理 API
  5. 使用 BeautifulSoup 进行网页抓取
← 返回 Learn AI with Python