Blog›Guides

implement下载55,000条AI提示词(免费,无需爬取)

以下是逐步指南,教你如何通过公共数据集端点拉取完整的Wikiprompt目录,并跟随keyset分页游标直到没有剩余内容,无需进行任何抓取。

implement下载55,000条AI提示词(免费,无需爬取)

如何下载55,000条AI提示词(免费,无需爬取)

如果你曾经尝试通过爬取Twitter线程、截屏Discord服务器,或用无头浏览器翻页抓取网站HTML来构建提示词数据集,你就知道这有多脆弱。选择器会变,速率限制会触发,而且你收集到的“提示词”中有一半其实是关于提示词的回复,而不是提示词本身。

Wikiprompt刚刚消除了所有这些需求。这个目录包含超过55,000条精选AI提示词,涵盖图像、视频和文本生成,适用于Midjourney、GPT Image、Veo、Kling、Nano Banana和Claude等模型,现在以纯JSON数据集的形式提供,你可以用curl分页获取。无需API密钥,无需登录,无需爬取。这篇文章是从“我想要数据”到本地文件中包含55,000条记录的最快路径。

第一步:访问清单

在拉取任何记录之前,先检查清单,这样你的脚本就能知道它处理的是什么:

curl "https://www.wikiprompt.org/dataset"

这会返回一个小的JSON文档,描述数据集:total_prompts(当前数量,55,000+),record_fields(下面的模式),以及pagination方案。把这个端点当作总数的唯一来源,不要在管道中硬编码数字。

第二步:拉取第一页

实际记录位于/dataset/prompts。分页基于键集(游标,而非页码),这意味着即使在第200页也能保持快速和稳定。默认页面大小为200条记录;你可以一次请求最多500条:

curl "https://www.wikiprompt.org/dataset/prompts?limit=500"

响应是一个JSON对象,包含记录列表和一个next字段。next是一个完整的URL,可以直接按原样获取,它带有一个after游标,指向你刚刚收到的最后一条记录。当没有更多内容可分页时,next为null。这一个字段就是你的整个循环条件。

第三步:跟随`next`直到它为null

这是Python中的完整分页循环。它将每条记录写入本地文件并自动停止:

import json

import time

import urllib.request

url = "https://www.wikiprompt.org/dataset/prompts?limit=500"

out = open("wikiprompt_dataset.jsonl", "w")

count = 0

while url:

with urllib.request.urlopen(url) as resp:

data = json.loads(resp.read())

for record in data["records"]:

out.write(json.dumps(record) + "\n")

count += 1

url = data.get("next")

time.sleep(0.2)

out.close()

print(f"Downloaded {count} prompts")

同样的循环用Node实现,如果你的技术栈是Node:

let url = "https://www.wikiprompt.org/dataset/prompts?limit=500";

const fs = require("fs");

const out = fs.createWriteStream("wikiprompt_dataset.jsonl");

let count = 0;

while (url) {

const res = await fetch(url);

const data = await res.json();

for (const record of data.records) {

out.write(JSON.stringify(record) + "\n");

count++;

}

url = data.next;

}

console.log(Downloaded ${count} prompts);

运行其中任何一个然后离开。每个响应都经过边缘缓存并启用了CORS(Access-Control-Allow-Origin: *),所以这可以从服务器、浏览器控制台、笔记本或无服务器函数中工作,无需任何特殊头。在正常连接下,以limit=500拉取全部55,000+条记录只需不到几分钟。

每条记录你实际得到什么

数据集中的每个JSON对象都有相同的结构,这正是它除了单次浏览之外还有用的原因:

  • slug和url,该提示词在wikiprompt.org上的规范页面
  • title和description
  • content,你会复制到模型中的实际提示词文本
  • category(创意、营销、个人、生产力、编程、教育、商业、研究、其他)和tags
  • media,当提示词产生视觉输出时的图像或视频URL
  • model,提示词为其编写或生成的AI模型
  • metadata,一个结构化块,涵盖媒体类型、宽高比、风格和质量评估
  • author和original_source,指向提示词来源的原始推文或帖子的链接
  • created_at和updated_at
  • 那个content字段是关键:它是可直接使用的提示词文本,而不是摘要,这正是大多数爬取数据集搞错的地方。

    先看几条记录

    与其盲目相信模式,不如打开几条实际条目。Titan: Engineering Blueprint of a Transforming Robot是一个详细的图像提示词的好例子,带有完整的元数据块。Data Physicalization展示了category和tags如何为更概念化、设计导向的提示词分配。Pastel Fantasy Portrait of a Young Woman是一个简洁的风格驱动提示词,值得与其元数据中的style字段进行比较。从本地JSONL文件中拉取这三个slug是快速检查解析器的方法,然后再信任它处理全部55,000条。

    如果你更想查询而不是下载

    批量数据集适用于你想要一次性地在本地拥有所有内容的情况。如果你只需要一部分,搜索API按需返回JSON查询结果,MCP服务器将同一目录作为工具暴露给Claude和其他代理,而llms.txt为爬虫提供站点地图。数据集导出和这些实时端点共享相同的基础数据,所以之后在它们之间切换不会花费你任何成本。

    如果你重用这些数据,有一条规则

    Wikiprompt聚合了原始作者公开帖子中的提示词;它不是版权持有者。如果你发布了基于此数据集构建的内容,请注明wikiprompt.org以及你使用的具体记录上的original_source链接。这是所有这些内容附加的唯一条件。

    下载它,分页浏览它,然后构建一些东西。清单和next游标是你唯一需要记住的两件事。

    Tags
    open-data·dataset·ai-prompts·api·download·pagination