零基础爬虫:看懂一个API,让AI帮你写逻辑
你以为爬虫很难?其实只要会看网页的”网络请求”,再让AI帮你写代码,半小时就能搞定上千条数据。本篇以公开名言API为例,手把手教你:F12打开开发者工具 → 找到数据接口 → 看懂JSON结构 → 用自然语言描述给AI → 拿到可运行Python脚本 → 导出CSV。全程零编程门槛,只讲方法不讲黑话。
一、爬虫没有想象中那么难
很多朋友听到”爬虫”就觉得是黑客技术,需要精通编程、熟悉网络协议。其实不然。
对于绝大多数公开的数据页面,我们只需要掌握一个核心能力——看懂网页的数据交互方式,剩下的代码生成完全可以交给AI来完成。
爬虫的本质是”模拟浏览器发请求”,不是”破解服务器”。 现代网站大部分数据都通过API以JSON格式传输,你只是用程序代替手动复制,效率提升百倍而已。
二、案例:用公开API抓取名人名言列表
假设你正在做一个文案收集项目,需要从一个公开名言网站获取所有数据。该网站每页显示20条,总共几十页,手动复制显然不现实。
我们将使用一个真实、公开、无需认证的API——Quotable 提供的名人名言接口:
- 接口地址:
https://api.quotable.io/quotes - 分页参数:
page(页码)和limit(每页条数) - 返回数据:包含
results(名言列表)和totalPages(总页数)
这个接口完全开放,无需注册、无需Token,是最理想的教学示例。
▸ 小贴士:本文方法适用于任何网站,但实际爬取时请遵守网站 robots.txt 及服务条款,合理设置请求频率,切勿对目标服务器造成压力。
三、第一步:打开F12,找到数据接口
无论多炫酷的页面,它的数据总得从服务器获取。我们只需要找到浏览器向服务器请求数据的那个接口。
操作方法(以Chrome为例):
- 按
F12打开开发者工具 - 点击
Network(网络)选项卡 - 点击
Fetch/XHR过滤器(只显示异步数据请求) - 清空现有请求(点击左上角🚫图标)
- 在页面上点击”下一页”或”查询”按钮
- 观察新出现的请求,找到名称包含
list、query、page等关键词的那一个
刷新页面后,我们会看到类似这样的请求:
GET https://api.quotable.io/quotes?page=2&limit=20
从这条请求中我们读到了什么?
- 请求地址:
/quotes - 请求方式:
GET(数据通过URL参数传递,而非表单提交) - 关键参数:
page=2(当前页码)、limit=20(每页条数)
这就是数据的”源头”。 只要我们能模拟这个请求,就能拿到和页面一模一样的JSON数据。
四、第二步:看懂JSON结构,找到”数据仓库”
点击这个请求,在右侧的 Preview(预览)或 Response(响应)选项卡中,我们看到服务器返回的JSON内容:
{
"results": [
{
"_id": "5c7f9e7c1c9d440000a1d4b1",
"content": "The only way to do great work is to love what you do.",
"author": "Steve Jobs",
"tags": ["inspirational"],
"dateAdded": "2020-01-01"
}
],
"totalPages": 50,
"currentPage": 2,
"totalCount": 1000
}
关键信息一目了然:
- 我们要的数据全在
results数组里(每条包含content名言、author作者、tags标签) - 分页信息在
totalPages里(共50页) page参数从1开始,每次翻页+1
看懂这个结构至关重要——因为接下来我们要告诉AI:数据在哪、怎么翻页、字段叫什么。
五、第三步:把需求描述给AI,让它生成代码
现在,我们不需要自己写一行代码,只需要把上面观察到的信息用自然语言描述给AI。
提示词模板(可直接复制使用):
我需要爬取一个公开API的数据,接口信息如下:
- 请求URL: https://api.quotable.io/quotes
- 请求方式: GET
- 参数: page=1, limit=20
- 响应结构: {"results": [...], "totalPages": 50}
- 数据在 results 字段中
- 分页参数 page 从1开始,总页数通过 totalPages 获取
请帮我写一个Python爬虫,循环获取所有页的数据,并将结果保存为CSV文件。
AI会在几秒内生成如下代码:
# 这段在做:循环请求分页API,全量抓取并导出CSV
import requests, time, pandas as pd
BASE_URL = "https://api.quotable.io/quotes"
HEADERS = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"}
def fetch_page(page, limit=20):
params = {"page": page, "limit": limit}
resp = requests.get(BASE_URL, headers=HEADERS, params=params)
if resp.status_code == 200:
data = resp.json()
return data.get("results", []), data.get("totalPages", 0)
return [], 0
first, total = fetch_page(1)
all_data = first
for p in range(2, total + 1):
page_data, _ = fetch_page(p)
if page_data:
all_data.extend(page_data)
time.sleep(0.5)
pd.DataFrame(all_data).to_csv("quotes.csv", index=False, encoding="utf-8-sig")
print(f"完成!共 {len(all_data)} 条")
代码逻辑三步走: 先请求第一页拿到总页数 → 循环请求剩余页 → 合并写入CSV。time.sleep(0.5) 是礼貌性延迟,防止请求频率过高。
六、第四步:运行代码,收获数据
把AI生成的代码保存为 spider.py,然后:
- 安装Python(如未安装)
- 命令行执行:
pip install requests pandas - 运行:
python spider.py
几秒钟后,当前文件夹下出现 quotes.csv,用Excel打开,所有名言和作者信息整整齐齐排列着。
七、从示例到真实场景:四个常见变体
上述示例是最简单的公开API,但现实中你可能遇到以下情况,只需稍作调整即可应对:
【需要登录或携带Token】
从浏览器开发者工具的请求标头中复制 Cookie 或 Authorization 字段,加入 HEADERS 字典即可。
【参数名不同】
有的接口用 pageNum、size 或 offset/limit,只需在描述AI时指明——AI会根据你的描述自动调整参数名。
【返回结构嵌套较深】
例如数据在 data.list.items 中,你只需告诉AI:”数据在 data.list.items 路径下”,它会自动处理解析。
【请求频率限制】
在循环中把 time.sleep(0.5) 改成 time.sleep(1) 或更大值,模拟人类操作节奏,避免被封。
写在最后
通过这个案例,你可以看到:爬虫的核心技术点不是编程,而是看懂浏览器开发者工具中的网络请求。
方法论的三个步骤:F12找到数据接口 → 读懂JSON结构 → 描述给AI生成代码。这三步,只要你掌握了”F12″和”JSON”两个关键词,搭配一个聪明的AI,就没有什么公开数据是拿不到的。
如果你下次再遇到需要从网页导出表格的情况,不妨先试试按F12看看——你可能会发现,原来自己离”技术大神”只差一次F12的距离。
你有没有试过让AI帮你写爬虫?效果怎么样?欢迎评论区分享你的经验。