SearchIt! 自动爬取 Wikidot 网站页面,收录到数据库并提供一个美观的搜索前端。
frontend (PHP) ←→ backend API (Python/Flask) ←→ SQLite
↑ ↑
搜索/筛选 爬虫 / 定时任务
- 后端: Python + Flask + APScheduler + BeautifulSoup4
- 前端: PHP + 原生 JS + CSS(暗色主题)
- 数据库: SQLite
- 爬取目标: 任意 Wikidot 站点(后台配置,如
example.wikidot.com)
chmod +x deploy.sh
./deploy.sh选项:
./deploy.sh --no-nginx # 使用 PHP 内置服务器 (无 nginx)
./deploy.sh --port 80 # 自定义前端端口
./deploy.sh --domain example.com # nginx server_name- 🔍 名称搜索 — 模糊匹配页面名称和描述
- 🏷️ 标签筛选 — 支持包含/排除 (
not:前缀) - 👤 作者筛选 — 按作者名过滤
- 📅 时间范围 — 指定起止日期
- ⏱️ 创建时间
- ⭐ 评分
- 🎯 相关性
- 📛 名称
- 🃏 卡片视图
- 📋 列表视图
# 启动后端
cd backend && source venv/bin/activate && python scheduler.py
# 手动爬取一次
cd backend && source venv/bin/activate && python -m crawler
# 启动前端 (PHP 内置服务器)
cd frontend && php -S 0.0.0.0:8080
# 查看后端日志
sudo journalctl -u searchit-backend -f| 端点 | 说明 |
|---|---|
GET /api/ping |
健康检查 |
GET /api/pages?search=&tags=&author=&date_from=&date_to=&sort=&order=&page=&limit= |
搜索页面 |
GET /api/tags |
所有标签 |
GET /api/stats |
统计信息 |
GET /api/crawl-history |
爬取历史 |
SearchIt/
├── deploy.sh # 一键部署脚本
├── README.md
├── backend/
│ ├── requirements.txt # Python 依赖
│ ├── config.py # 配置
│ ├── database.py # 数据库层
│ ├── crawler.py # 爬虫
│ ├── api.py # Flask API
│ └── scheduler.py # 调度器入口
└── frontend/
├── index.php # 主页面
├── style.css # 样式
└── script.js # 前端逻辑