logo
67

Web 爬虫

⏱️ 45分钟

Web Scraping:从网页提取结构化信息

你现在可能会困惑什么

“抓取是不是就是复制网页文本?”

不是。抓取要程序化提取字段并处理异常与合规。

一句话定义

Web scraping 是通过程序请求页面并解析 HTML 提取目标数据。

生活类比

手抄通讯录 vs 自动采集并整理成表格。

最小可运行例子

import requests
from bs4 import BeautifulSoup

resp = requests.get("https://example.com", timeout=10)
soup = BeautifulSoup(resp.text, "html.parser")
print(soup.title.string)

课堂小测(5 分钟)

  1. 提取页面标题与所有 h2。
  2. 加失败重试 2 次。
  3. 输出抓取数量统计。

课堂小测参考答案与判分点

  • 参考答案方向:能写出可运行代码,并覆盖题目中的核心条件与边界输入。
  • 判分点 1(正确性):主流程结果正确,关键分支可执行。
  • 判分点 2(可读性):变量命名清晰,结构不过度嵌套。
  • 判分点 3(健壮性):对空值、类型错误或异常输入有基础保护。

迁移任务(课后)

实现小爬虫:抓取公开页面列表并导出 JSON。

本节验收标准

你能独立做到:

  • 使用 requests + BeautifulSoup 抓取
  • 处理超时和空结果
  • 说明合规边界

常见报错与调试步骤(新手版)

  • 报错看不懂:先读最后一行错误类型(如 TypeErrorNameError),再回到对应代码行定位。
  • 不确定变量值:在关键位置临时 print(变量, type(变量)),先确认数据是否符合预期。
  • 改了代码却没生效:确认文件已保存、运行的是当前文件、终端环境(venv)是否正确。

常见误区

  • 误区:网页能访问就能随便抓。
  • 正解:要遵守 robots 与站点条款。