AI爬虫开发入门:从零搭建一个智能网页信息提取工具
很多新手想在爬虫里加入AI能力,让程序自动理解网页内容并提取关键信息。
本文从零开始写一个AI爬虫小工具,涉及Python环境搭建、网页请求、调用AI接口三个核心环节,每一步都有可直接执行的代码和注释。
前置技能:你只需要会复制粘贴
AI爬虫开发听起来复杂,但以下条件你基本都具备:
- 能打开电脑命令行或终端
- 有一个可以联网的环境
- 注册了一个AI平台账号(比如OpenAI、阿里通义千问、百度文心等)并获取了API Key
- 愿意按照步骤粘贴代码并运行
如果你还没准备API Key,可以先跳过AI调用部分,先把爬虫跑通。
第一步:安装Python和依赖库
大部分操作系统自带Python,但你最好确认版本在3.7以上。
打开终端或CMD输入:
python --version
如果显示类似 Python 3.9.10 就OK。
低于3.7请从官网下载安装。
下一步安装两个库:requests(发HTTP请求)和 beautifulsoup4(解析网页)。
直接执行:
pip install requests beautifulsoup4
如果报错权限问题,macOS/Linux加 sudo,Windows用管理员运行CMD。
第二步:写爬虫抓取网页内容
新建一个 ai_crawler.py 文件,输入以下代码:
import requests
from bs4 import BeautifulSoup
# 目标网页,你可以换成任意新闻或文章页
url = "https://example.com/some-article"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
}
response = requests.get(url, headers=headers, timeout=10)
response.encoding = response.apparent_encoding # 自动识别编码
soup = BeautifulSoup(response.text, "html.parser")
# 去掉script和style标签,只留可见文本
for tag in soup(["script", "style"]):
tag.decompose()
plain_text = soup.get_text(separator="\n", strip=True)
# 只保留前2000字符,避免AI接口超时
plain_text = plain_text[:2000]
print("抓取到的文本片段:")
print(plain_text[:200])
运行 python ai_crawler.py 如果能看到网页的文本前200字符,说明爬虫工作正常。
第三步:调用AI接口提取关键信息
以下示例使用OpenAI兼容格式的API(通义千问、文心一言等也都支持)。
在你的 ai_crawler.py 中加入:
import json
def extract_with_ai(text, api_key, api_url="https://api.openai.com/v1/chat/completions"):
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
payload = {
"model": "gpt-3.5-turbo", # 通义千问可用 qwen-turbo
"messages": [
{"role": "system", "content": "你是一个信息提取助手,请从给定文本中提取标题、作者、发布时间和核心内容要点,用中文输出。"},
{"role": "user", "content": text}
],
"temperature": 0.3
}
resp = requests.post(api_url, headers=headers, json=payload, timeout=30)
resp.raise_for_status()
result = resp.json()
return result["choices"][0]["message"]["content"]
# 在抓取后调用
api_key = "sk-你的key" # 替换成真实的API Key
result = extract_with_ai(plain_text, api_key)
print("\nAI提取结果:")
print(result)
如果使用通义千问,
只需将 api_url 改为 https:,
//dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
并按照官方文档调整请求格式。
常见报错与避坑
- 403 Forbidden:目标网站反爬,尝试增加
headers中的Referer或使用time.sleep()放慢请求。 - API Key 无效或额度不足:检查环境变量或直接替换
api_key字符串,确认账户有可用额度。 - 响应超时:网页内容过长,将
plain_text[:2000]改小到1000字符。 - 乱码:在
response.encoding后手动指定response.encoding = 'utf-8'。 - 模型不支持中文:更换模型名称为国内模型,或添加
system message要求中文输出。
验证效果:运行完整脚本
确保 ai_crawler.py 中依次执行爬虫和AI提取,最终在终端看到类似以下输出:
抓取到的文本片段:
...(网页原文截取)...
AI提取结果:
标题:XXX
作者:XXX
发布时间:2025-01-01
核心内容:……
如果输出格式符合预期,你的第一个AI爬虫已经开发完成。
后续可以扩展为批量抓取、保存到数据库、或改用本地AI模型。
如果你在执行过程中遇到任何报错,优先检查网络和API Key,这两个是新手最容易卡住的地方。
掌握这个流程后,你可以把爬虫目标换成任何你感兴趣的网站,实现真正的AI爬虫开发实战。