spidercreator
用自然语言描述需求,AI 自动生成可运行的 Scrapy 爬虫代码
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用自然语言描述需求,AI 自动生成可运行的 Scrapy 爬虫代码
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:SpiderCreator 项目 banner,展示了 AI 驱动爬虫生成的核心理念
某电商数据团队每周需要从数十个供应商网站抓取最新的商品价格与库存数据。运营人员日复一日地重复同一套操作:打开浏览器、手动定位 HTML 元素、复制数据到 Excel。这套流程枯燥、耗时,而且每次网站改版都意味着新一轮的脚本维护——一个 class 名的变化,就可能导致整个爬虫彻底失效。
SpiderCreator 的出现,就是为了解决这个"最后一公里"问题。它不需要你懂 XPath、不需要你会写 Playwright,甚至不需要你了解网页结构。你只需要用自然语言描述"我想抓什么",AI 就能替你生成一套可独立运行的 Scrapy 爬虫脚本。
这个项目的作者 Carlos A. Planchón,是一位来自乌拉圭 Dolores 的独立开发者。从 2008 年写下第一行代码,到如今构建起多个 Python 开源工具(BetterHTMLChunking、pyobjtojson 等),他始终关注数据处理领域的高效解决方案。
他在项目 README 中直言不讳地指出:用 LLM 直接抓取数据的成本太高了。以 GPT 为例,为一个页面创建爬虫的成本约为 2.5 美元,若需要覆盖两种页面类型(如商品列表页 + 商品详情页),总成本约 5 美元。对于需要周期性运行的大规模数据采集任务而言,这个成本几乎不可接受。
SpiderCreator 的核心洞察在于:LLM 只用在"生成爬虫代码"这个一次性环节,而爬虫本身的执行,完全走传统方法,成本接近于零。这使得它在企业级周期性数据采集场景中,具备了真正的经济可行性。
SpiderCreator 的工作流程分为五个精密衔接的阶段:
用户提供一段自然语言任务描述(如"访问某电商网站,抓取所有商品名称、价格和折扣信息"),系统调用 Browser Use 框架,在真实浏览器中执行该任务。整个浏览过程(页面跳转、元素点击、数据提取)被完整录制为结构化数据,包含网页 HTML、截图、提取内容等。
系统根据录制数据生成一段 Mermaid 思维导图,直观展示 AI 在网页上的导航路径和操作逻辑。这不仅帮助开发者理解爬虫的工作原理,也为后续的 XPath 规划提供了语义基础。
系统基于思维导图和生成的 Scrapy 爬虫草稿,构建一套结构化多阶段规划(Multi-stage Planning)。每个阶段对应网页上的一个独立操作单元(如进入列表页、进入详情页、翻页等),并为每个阶段规划最优的 XPath 选择策略。
这是整个流水线中最关键的一步。对于每个规划阶段,系统:
每个阶段最多生成 75 个候选爬虫,最终选择执行效果最好的那个。
各阶段筛选出的最优爬虫片段被拼接为完整的 Scrapy 爬虫代码,输出为 results/<task_id>/spider_code.py,可直接独立运行。
图2:SpiderCreator 云端服务界面,展示了实际运行效果
SpiderCreator 并不重复造轮子,它站在多个成熟开源库的肩膀上:
| 依赖库 | 作用 |
|---|---|
| browser-use | AI 驱动浏览器自动化执行录制 |
| betterhtmlchunking | HTML 分块压缩与 DOM 表示生成(作者自研) |
| pyhtml2md | HTML 转 Markdown 工具 |
| pydantic | 数据建模与验证 |
| playwright | 底层浏览器控制 |
| scrapy | 生成的爬虫脚本的运行框架 |
| parsel | XPath/CSS 选择器(生成的爬虫使用) |
| fastapi | API 服务层(RecordingAPIContext) |
Python 版本要求:>=3.11,<3.13,项目推荐使用 Python 3.13 以获得最佳性能。
项目代码按职责清晰分层:
main.py:CLI 入口,create_spider() 函数封装了完整的录制 + 生成流程spidercreator.py:主流水线编排器,串联所有阶段planning/:录制过滤、规划器、tokenizer,将录制数据转化为结构化规划pipeline/:核心处理流水线,包含 DOM 表示、ROI 分类、候选爬虫生成、验证等ctxexec/:候选爬虫的沙箱执行环境(virtual execution),确保安全验证utils/:工具函数(截图解码、录制数据加载等)examples/:三个参考案例(职位发布、房产列表、商品列表)架构类型属于 Pipeline Pattern(流水线模式),各阶段通过数据传递紧密耦合,但阶段内部逻辑高度内聚,便于独立测试和迭代。
项目尚未发布到 PyPI,需要直接 clone 仓库运行:
git clone https://github.com/carlosplanchon/spidercreator.git
cd spidercreator
uv sync # 或 pip install -r requirements.txt
playwright install chromium
export OPENAI_API_KEY=你的Key
from spidercreator import create_spider
browser_use_task = """
Navigate to https://example.com homepage.
Extract all products on the homepage with its visible attributes.
"""
task_id = create_spider(browser_use_task=browser_use_task)
运行后,系统会自动完成录制、分析、生成全流程,最终在 results/<task_id>/spider_code.py 生成可直接运行的 Scrapy 爬虫。
生成的爬虫基于 Scrapy + Playwright + Parsel,包含完整的翻页逻辑、详情页跳转和数据提取。生成的爬虫使用 XPath 选择器(而非 AI 直接抓取),这意味着即使网站小幅改版,只要 DOM 结构未变,爬虫依然有效——这正是 SpiderCreator 区别于"每次请求都要花 LLM token"方案的核心优势。
3.11-3.12,Python 3.13 用户需要降级,这对追求新特性和性能的开发者不友好SpiderCreator 更适合:
不太适合:
SpiderCreator 代表了一个重要趋势:LLM 不再只是数据提取的执行者,而是开始扮演"工程师"的角色——写代码、生成工具。
过去,AI 爬虫方案(如 GPT 实时抓取)的本质是"每次请求都消耗 LLM token",成本随数据量线性增长。SpiderCreator 证明了一种更经济的路径:LLM 做一次性的架构设计(生成爬虫),后续执行交给传统代码完成。
这种"生成式设计 + 确定性执行"的范式,与软件开发中的"AI 辅助编程"逻辑一脉相承。它预示着 AI 在数据采集领域,正在从"替代人工"走向"赋能工具"。
项目 GitHub 页面显示有 Discord 社区和独立云服务(services.carlosplanchon.com/spidercreator),作者在持续维护中。