学生数据爬取SDK

一个用于从PDDIKTI API爬取学生数据的强大、类型安全的TypeScript SDK。

  • by teszerrakt
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 teszerrakt/pddikti-scraper

使用说明

PDDIKTI刮刀SDK

一个强大的、类型安全的TypeScript SDK,用于从PDDIKTI API中抓取学生数据。建于 包子 和 黄道带.

特性

  • 🚀 流利的API:用于构建复杂查询的可链接方法。
  • 🔒 类型安全:完全支持TypeScript和Zod验证。
  • 🛠️ 通用的:可配置为搜索任何程序或关键字。
  • ⚡ 快:针对Bun进行了优化。

安装

bun install

用法

您可以在自己的脚本中使用SDK。看 example/index.ts 完整的演示。

import { Pddikti } from "./src"; // Import from the SDK

// Example: Search for "Joko" in "Kehutanan UGM" and filter results
const results = await Pddikti.search("Joko Kehutanan UGM")
    .filterBy(s => s.nama.includes("Joko"))
    .getDetails()
    .filterBy(d => d.jenjang === "S1")
    .run();

console.log(results);

运行演示

此存储库包含一个预配置的示例脚本。

# Run the demo scraper (Joko Kehutanan UGM & Bahlil UI)
bun run start

MCP服务器

该项目包括一个MCP(模型上下文协议)服务器,该服务器允许LLM与PDDIKTI API交互。

运行MCP服务器

bun run mcp-server

可用工具

  • search_students:按姓名、NIM或大学搜索学生。
  • get_student_detail:通过ID获取特定学生的详细信息。

发展

装订和格式化

此项目使用 生物群系 用于裁剪和格式化。

# Run lint check
bun run lint

测试

使用Bun的内置测试运行器运行单元测试。

bun test

预提交挂钩配置如下 哈士奇 和 皮棉上演 确保每次提交的代码质量。

项目结构

pddikti-scraper/
├── src/
│   ├── index.ts      # SDK Entry Point
│   ├── pddikti.ts    # Fluent API Logic
│   ├── api.ts        # Low-level API Client
│   └── schemas.ts    # Zod Schemas
├── example/
│   └── index.ts      # Usage Demo
├── .husky/           # Git Hooks

免责声明

此工具用于 仅用于教育和研究目的.

  • 尊重隐私:抓取的数据包含个人身份信息(PII),如姓名和学生证。请勿使用此工具为恶意目的、垃圾邮件或骚扰收集数据。
  • 法律合规:确保您遵守您所在司法管辖区的所有适用法律法规(例如,印度尼西亚的UU PDP、GDPR)。
  • 服务器负载:恭敬地使用内置延迟。不要让目标服务器不堪重负。
  • 责任:作者不对任何滥用此工具的行为负责。