JsonGenius
JsonGenius 是一个自托管的爬取 API,可以提取由 JSON Schema 描述的结构化数据。提供任何 URL 和所需的 JSON Schema,JsonGenius 将从网站返回结构化数据。
演示
前提条件
- Docker Compose
OPEN_AI_KEY
- OpenAI 的 API 密钥。你可以在这里免费获取一个。这应该设置为环境变量。
使用方法
Docker Compose(推荐)
git clone https://github.com/semanser/jsongenius
cd jsongenius
export OPEN_AI_KEY=<你的密钥>
docker compose up
API 将在 http://localhost:3001 上可用。你可以通过编辑 docker-compose.yml
文件来更改端口。
从源代码编译
git clone https://github.com/semanser/jsongenius
cd jsongenius
export OPEN_AI_KEY=<你的密钥>
go build .
./jsongenius
API
POST /lookup
此端点接受包含以下字段的 JSON 主体:
url
:要爬取的网站 URLschema
:用于从网站提取数据的 JSON Schema。该 schema 必须是有效的 JSON Schema 对象。在这里阅读更多关于 JSON Schema 的信息。
示例
curl -X POST -H "Content-Type: application/json" -d '{
"url": "https://www.amazon.com/s?k=gaming+headsets",
"schema": {
"type": "object",
"properties": {
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "产品名称"
},
"price": {
"type": "number",
"description": "产品价格(美元)"
}
}
}
}
}
}
}' http://localhost:3001/lookup
常见问题
- 它是否适用于大量使用 JS 的网站? 是的!JsonGenius 使用 Chromium 来渲染页面,所以它可以处理任何普通浏览器能处理的网站。
- 我可以使用自己的 Chromium 实例吗? 可以!你可以设置
WS_URL
环境变量,指向 Chrome DevTools Protocol 端点。JsonGenius 将使用它而不是启动自己的 Chromium 实例。