DeepSeek并非现成爬虫框架,而是可嵌入采集流程的推理与抽取引擎。本文从环境配置、请求抓取、解析清洗到合规限流,给出可落地的代码用法与工程要点。
很多开发者搜索相关用法时,期待一段代码就能完成网页抓取、翻页和入库,实际落地时却常卡在接口调用、HTML噪声和字段不稳定上。需要先厘清一个事实:DeepSeek提供的是模型推理能力,不负责主动访问网页,也不替代 requests、Playwright 或 Scrapy 这类采集组件。合理做法是让传统爬虫负责下载与调度,让模型承担语义解析、字段归一化和质量校验。下面按采集链路拆解代码用法,兼顾教学演示与生产约束。
1. 明确DeepSeek在爬虫链路中的角色
爬虫链路通常分为调度、下载、解析、存储和监控五层,DeepSeek最适合放在解析层,而不是下载层。模型通过API接收你传入的HTML片段、正文文本或结构化摘要,再按Prompt要求输出JSON字段;它不会自己打开浏览器,也不会主动请求目标站点。因此代码里必须先有稳定的抓取模块,例如用requests获取静态页,用Playwright处理需要渲染的动态页,再把清洗后的DOM片段交给模型。把模型当“语义解析器”而不是“万能爬虫”,后续的字段校验、去重和入库才有可控基础。
在AI指导课程和团队实践中,一个常见案例是商品详情页抽取。价格、库存状态往往藏在JSON-LD或固定CSS选择器里,用规则解析更稳、成本更低;而商品规格、适用场景、卖点归类这类多模板语义字段,更适合交给DeepSeek做归一化。教学演示时可以先写规则解析,再展示模型如何补齐缺失字段和处理模板差异,这样学员能理解模型边界。成本控制也要提前讲清:长HTML会消耗大量token,传入前应移除script、style、导航和无关脚本,只保留正文与关键DOM节点,并对同一URL的模型结果做缓存。
2. 搭建最小可用采集与调用环境
最小环境通常包括Python 3.10以上版本、虚拟环境、requests或httpx、BeautifulSoup或lxml,以及需要渲染页面时的Playwright。DeepSeek调用可以通过OpenAI兼容SDK或直接发HTTP请求完成,关键配置是把API Key放入环境变量,避免写死在代码里;接口地址使用官方兼容端点,模型可选deepseek-chat,复杂推理场景再评估deepseek-reasoner。调用时构造messages,system中明确“只输出JSON、字段缺失填null、不要解释”,user中放入清洗后的页面片段和目标字段说明,temperature设为0,max_tokens设上限,并开启JSON输出格式以减少解析失败。
一个可运行的流程是:先对目标URL发GET请求,设置超时、User-Agent和Accept头,检查状态码与Content-Type;再用BeautifulSoup删除script、style、nav等噪声节点,保留标题、价格、规格表和详情正文;随后按模型上下文限制截断或分块,调用DeepSeek并读取返回JSON;最后用Pydantic或自定义校验器检查字段类型、枚举值和空值比例,失败时记录原始响应并重试。这个流程看起来比“直接让模型爬”多几步,但正是这些步骤决定了代码能否长期运行。教学时建议先用本地保存的公开HTML做离线演示,再切换到真实页面,避免一开始就被反爬、登录和动态渲染问题打断。
3. 用模型完成解析、清洗与结构化抽取
Prompt设计要像定义数据合同,而不是写一段开放式描述。字段名、类型、缺失值规则、枚举范围和证据片段都应写清楚,例如title为字符串、price为数字或null、currency限定为CNY或USD、availability限定为in_stock或out_of_stock,并要求模型输出source_url和evidence_text便于复核。模型返回后不能直接入库,代码要校验价格是否为合理数字、货币是否在枚举内、标题长度是否异常,并保存原始HTML哈希和Prompt版本,方便定位抽取漂移。这样DeepSeek承担的是语义理解与归一化,规则校验负责兜底。
清洗环节要处理HTML实体、多余空白、单位混写和多语言同义词。长页面不建议整页塞给模型,可以按商品卡、表格行或详情段落切块,逐块抽取后再合并去重;同一页面多次调用时,用URL哈希加Prompt版本做缓存,减少重复token消耗。以招聘信息为例,薪资“15-25K·14薪”需要归一化为月薪区间和年薪月数,模型可以完成语义拆解,但代码仍要校验区间上下限和币种。教学场景中应强调:模型输出是候选数据,不是最终事实,必须保留证据片段和人工抽检入口,才能让抽取结果具备可追溯性。
4. 工程化限流、重试与合规控制
生产环境里,限流要同时覆盖目标站点和模型API。对目标站点设置并发信号量、单域名QPS上限和随机延迟,避免集中请求;对DeepSeek调用记录token用量、延迟和错误码,遇到429或5xx时采用指数退避加抖动,只对幂等任务重试,并把失败任务写入队列而不是无限循环。缓存策略按URL哈希、Prompt版本和模型名称组合键设计,命中缓存直接返回,既降低费用也减少目标站点压力。监控面板至少展示抓取成功率、模型解析失败率、字段空值率和单页平均成本,这些指标比单纯看“抓了多少页”更能反映链路健康度。
合规控制不是附加说明,而是代码的一部分。采集前检查robots.txt和目标站点服务条款,只处理公开且允许采集的页面;涉及个人信息时坚持最小化原则,不采集与任务无关的敏感字段,不绕过登录、验证码或访问控制。请求头应标识真实User-Agent和,数据保留期限、删除机制和访问权限要在存储层落实。教学演示优先使用公开页面或本地HTML样本,把限流、重试、缓存和合规检查写成统一配置,才能让DeepSeek辅助抽取在真实项目中稳定运行。
