DeepSeek教程_noView
DeepSeek教程

用DeepSeek+Crawl4AI生成智能爬虫框架

说真的,我之前写爬虫写得快吐了。每次搞一些项目,最费时间的不是拿数据,而是想怎么绕过反爬,怎么去页面里找到我想要的那一小撮信息。更别说那些五花八门的页面结构,写个 XPath 就跟玩“华容道”一样,今天能抓明天就不行。是不是有种,干爬虫干出了亲切的中年危机感?

后来我就开始琢磨:现在大模型都这么强了,写文章能写、写代码能写,那为啥不能帮我抓点网页数据呢?再不济你能告诉我“我要的数据在哪”也行啊,别让我天天瞪着 DOM 树啊兄弟!直到我遇到了 Crawl4AI,配合 Deepseek 大模型用下来之后,我真想跟公司老板说:“这不是员工,这是员工的外挂。”

是不是每次写 XPath 的时候,都会在想人生?

我印象特别深,有次做一个生物医药产品库的采集,本来以为就是个正常的表格抓取,结果那站点每点开一个产品详情页,就像开盲盒,页面结构变着法儿给你整花活,有的用表格、有的用 div 嵌套,还有些直接写个 Canvas 让你截图。那时候真觉得:你一个卖化学品的网站,怎么整这么多 UI 特效啊,你是怕客户看不见价格吗?

就在我头秃、想跑路的时候,朋友给我安利了这个“长得像爬虫工具,实则 LLM 联动助手”的神器——Crawl4AI(https://github.com/unclecode/crawl4ai)

ai_tutorial_deepseek_case_Crawl4AI_1

说白了,它就是个能跑在浏览器里的智能爬虫系统,配合 AI 模型(我用的是 Deepseek),你只需要告诉它“我要表格里的价格、纯度、货号”这些字段,它就自己去爬网页,自己分析结构,自己提取出来,还能格式化成 JSON。连我那点脆弱的代码洁癖都给它治好了,干净整洁还规范。

Crawl4AI + Deepseek 怎么玩的?

先来说个简单场景:我要抓某化学品销售页面上的产品信息,像什么 CAS 编号、分子式、纯度、价格这些。以前我可能要:

  1. 抓网页源代码;
  2. 手动分析 DOM;
  3. 写 CSS/XPath;
  4. 遇到动态加载还要上 Selenium,配合等待时间、节点监听。

用 Crawl4AI,直接来一波轻操作:

    
python
from crawl4ai import AsyncWebCrawler
from crawl4ai.extraction_strategy import LLMExtractionStrategy
from pydantic import BaseModel

class Product(BaseModel):
    CASNo: str
    size: str
    price: str
    stock: str
    purity: str
    MF: str
    MW: str
    SMILES: str

strategy = LLMExtractionStrategy(
    provider="deepseek/deepseek-chat",
    api_token="你的API密钥",
    schema=Product.model_json_schema(),
    extraction_type="schema",
    instruction="从页面主表格提取出产品的 CASNo、purity、MF、MW、SMILES、size、price、stock",
    chunk_token_threshold=1000,
    apply_chunking=True,
    input_format="markdown",
)

async def run():
    async with AsyncWebCrawler() as crawler:
        result = await crawler.arun(
            url="https://某化学站点地址.com/product-detail",
            extraction_strategy=strategy
        )
        print(result.extracted_content)

整个过程就是——你说你要啥,它去找给你。你都不用亲自“打怪”,它像一个聪明的“实习生”替你去网页上自己找答案。

这里需要注意的是DeepSeek获取API密钥可能会有一些波折,需要申请第三方的API,大家可以参考这个教程:【获取API KEY

动态网页照样抓

有些站点爱搞那种“页面初始不加载数据、滚动再加载”的骚操作,这种以前都得配合浏览器驱动模拟操作,但现在 Crawl4AI 内置了对 JavaScript 的执行支持:

    
python
result = await crawler.arun(
    url="https://动态内容站点.com",
    js_code="window.scrollTo(0, document.body.scrollHeight);",
    wait_for="document.querySelector('.loaded')"
)

它真的是在浏览器里面执行你写的 JS 脚本,把网页滚动一遍,再等指定的节点加载出来,确保你抓到的是“最终呈现”的完整内容。你不再需要疯狂调试“点击事件”和 DOM 延迟加载,Crawl4AI 扛下了这些事,咱只负责收菜。

配置灵活到变态

说个平时不太被关注但我特别在意的点:错误处理

爬虫一旦遇上断网、页面结构突变或者超时,如果报错信息不给力,排查就跟刮彩票一样难受。但 Crawl4AI 做了详细的日志提示和异常捕获,甚至你可以自己定义在什么阶段执行什么钩子函数:

    
python
try:
    result = await crawler.arun(url="https://任意页面.com")
except Exception as e:
    print("爬虫崩了,兄弟来看一下是啥情况:", e)

钩子函数还可以自定义行为,比如在爬之前自动登录、加载 Cookie,或者在爬完之后统一清洗格式。这种可控又可扩展的设计,对于稍微复杂点的项目真的是解放了人力。

真实案例

我搞了个实验,拿 ChemShuttle 这种做化学合成产品的站点做了测试目标。我让 Deepseek 分析页面中一个复杂的产品信息表格,并返回结构化数据,结果如下:

    
json
[
  {
    "CASNo": "269398-78-9",
    "size": "1g",
    "price": "$150.00",
    "stock": "Typically in stock",
    "purity": "95%",
    "MF": "C25H22N2O6",
    "MW": "446.459",
    "SMILES": "OC(=O)C[C@@H]..."
  },
  ...
]

这个表格有合并单元格、隐藏字段、还有动态价格加载,我本来都做好自己调格式半天的准备了,结果 Deepseek 一步拿捏,全提出来,格式还规整得跟产品数据库一样。这种场景下,我真的想说一句:你再让我手写 XPath,那你就是让我倒退回石器时代。

最后

现在我已经习惯了用 Crawl4AI + Deepseek 来干活。不光省事,它最让我满意的是:省脑子

过去写爬虫,除了要懂代码,还得像侦探一样去琢磨网站结构。现在我只要告诉 AI:我要这个字段,它帮我提出来。我从“数据搬运工”成功转型为“爬虫调度员”,一人一 AI,效率翻倍不止。

还有一个细节特别感人:它支持本地部署模型,比如用 Deepseek R1 版本在本地跑,不联网也能提取内容,既安全又节省请求成本。

这工具真是适合所有和数据打交道的打工人,尤其是做爬虫、数据分析的兄弟姐妹,建议赶紧试一下,别再写 XPath 折磨自己了,咱要做的是高效信息获取,不是手工抓 HTML 标签!

阅读全文
RPA
八爪鱼RPA
支持一键抓取公众号/小红书/抖音/淘宝数据
立即查看
流程自动化
付费
AI爆文训练营
图文变现友好赛道,低门槛、高上限,教你从0到1做个赚钱的公众号!
立即查看
躺着赚钱
¥149/年
何老师陪你做副业
这里聚焦AI副业、个人IP、自媒体运营、写作、赚钱案例。不哔哔,只分享有价值的副业项目。
立即查看
AI赚钱案例
限免
DeepSeek进阶教程
带你全面掌握DeepSeek应用技巧。提升工作、学习效率
立即查看
100万人学过
付费
网盘拉新实战教程
每周花费一小时,手把手教你赚网盘平台佣金
立即查看
500人学过
限时优惠
AiPPT
结合最新AI技术,为用户提供一键生成高质量PPT的解决方案。
立即查看
一键生成 PPT
免费
豆包MarsCode
一款免费的AI编程助手,全新支持DeepSeek R1/V3、豆包大模型1.5自由切换,免部署、更准确、更强大!
立即查看
AI编程助手
免费
Monica AI
Monica AI满血复活DeepSeek【免费】,提升您的聊天、搜索、写作和编程体验。
立即查看
一站式 AI 助手
云服务
腾讯云
综合性的云计算服务平台,现已接入DeepSeek,提供多样化的云解决方案
立即查看
高效可靠
云服务
阿里云
全球领先的云计算与数据服务平台,提供云服务器、存储、数据库、安全等多种服务
立即查看
多样化
DeepSeek企业微信码
免费领取DeepSeek资料