Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔍 SearchIt!

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

📡 API

端点 说明
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           # 前端逻辑

About

SearchIt! - Wikidot page crawler and search engine with admin panel

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages