全网资源异步检索与自动化通知系统
触探是一款专为资源站长、情报员打造的全流程自动化检索工具。
核心能力:通过在后台数据库配置站点规则,即可像“安装插件”一样快速适配全网资源站,实现“配置化爬虫 -> 异步并行检索 -> 智能链接提取 -> 邮件自动推送”的闭环。
- 🔍 搜索前端:https://crawl.ucmao.cn (极简搜索入口,体验异步推送逻辑)
- ⚙️ 管理后台: https://crawl.ucmao.cn/admin
- 管理账号:
admin| 管理密码:admin123
- 管理账号:
- 🧩 插件化配置引擎:无需编写一行代码! 采用“配置即爬虫”的设计理念,通过定义站点采集规则,支持在后台可视化增删改查,实现分钟级快速适配新站点。
- 🚀 万能匹配协议:支持 GET/POST 请求、自定义 Headers 伪装、动态变量提取(如 CSRF Token 自动流转)及双级跳转解析,能够兼容大部分资源网站。
- 📧 智能通知闭环:任务异步执行,完成后自动通过邮件将资源链接发送至用户邮箱,支持结果持久化与 CSV 导出。
- 🛡️ 完善的管理系统:内置邮箱黑白名单规则、系统级限流策略(分钟/小时/天)、任务缓存机制,确保系统在高并发下的稳定性。
Web 前端 (提交关键词)
→ Django 后端 (任务分发)
→ Redis 队列 (消息中转)
→ Celery Worker (驱动 Scrapy 引擎)
→ 目标资源站 (根据配置动态匹配)
← 提取资源链接
← 邮件/系统通知 (异步回传)
| 维度 | 技术选型 |
|---|---|
| 核心框架 | Django 4.2 |
| 任务调度 | Celery + Redis |
| 爬虫引擎 | Scrapy |
| 数据存储 | PostgreSQL 12+ |
| 前端 UI | Tailwind CSS + SweetAlert2 |
特性:通过后台简单配置,您可以快速将任何资源网站转化为系统的“搜索插件”。
| 站点 Key | 站点名称 | 状态 | 站点 Key | 站点名称 | 状态 |
|---|---|---|---|---|---|
| ptger | PTGer | ✅ | zy6789o | 资源云 | ✅ |
| ahfi | Ahfi短剧 | ✅ | lbbb | LBBB短剧 | ✅ |
| ycubbs | YCU影视 | ✅ | kuleu | 酷乐鱼 | ✅ |
| gogopanso | GoGo盘搜 | ✅ | funletu | 趣乐兔 | ✅ |
| so252035 | 252035搜索 | ✅ | uuxiao | 悠悠小站 | ✅ |
| jikepan | 即刻盘 | ✅ | jutoushe | 剧透社 | ✅ |
| feikuai | 飞快TV | ✅ | dyyjmax | 电影云集 | ✅ |
| duanjugou | 短剧狗 | ✅ | aliupan | 阿里U盘 | ✅ |
| daishu | 袋鼠短剧网 | ✅ | ash | ASH搜剧助手 | ✅ |
| ajie | A姐分享 | ✅ | cilixiong | 磁力熊 | ✅ |
提示:以上仅为部分展示,另有 30+ 站点正陆续适配中。
系统内置邮件发送限流(分钟 / 小时 / 天多级控制)、关键词与任务缓存机制、资源广场展示与过期策略,以及爬虫任务超时与结果有效期控制,所有参数均可按需调整以平衡性能、稳定性与资源消耗。
- Python: 3.8+ | PostgreSQL: 12+ | Redis: 5.0+缓存与消息中间件
项目通过 .env 文件配置环境变量,把项目根目录.env.example 重命名为 .env 文件:
# 数据库配置
DB_ENGINE=django.db.backends.postgresql
DB_NAME=crawl_res_db
DB_USER=postgres
DB_PASSWORD=your_password
DB_HOST=localhost
DB_PORT=5432
# Redis 配置(Celery 和缓存)
CELERY_BROKER_URL=redis://localhost:6379/0
CELERY_RESULT_BACKEND=django-db
CACHE_BACKEND=redis
CACHE_URL=redis://localhost:6379/1
# REDIS_URL=redis://localhost:6379/0 # 可选,用于限流功能
# 站点配置
# SITE_BASE_URL 用于:1.邮件中的链接生成 2.自动配置 ALLOWED_HOSTS 和 CSRF_TRUSTED_ORIGINS
# 如果使用 Nginx 反向代理,请配置为对外访问的域名(标准端口可不写端口号)
SITE_BASE_URL=http://your-domain:5008
# 邮件配置(假设是163邮箱,用于发送通知邮件)
EMAIL_HOST=smtp.163.com
EMAIL_PORT=465
EMAIL_USE_SSL=true
EMAIL_HOST_USER=your_email@163.com
EMAIL_HOST_PASSWORD=your_email_password
EMAIL_FROM=your_email@163.com验证服务状态:
# 检查 PostgreSQL
pg_isready -h localhost -p 5432
# 检查 Redis
redis-cli ping
# 应该返回: PONG# 获取源码
git clone https://github.com/ucmao/crawl-res.git && cd crawl-res
# 初始化环境
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
# 数据库迁移与初始化
# 注意:执行以下命令前,请确保 PostgreSQL 服务已启动
# 如果 PostgreSQL 未启动,会提示连接错误
python manage.py migrate
python manage.py createsuperuser # 创建管理员账号(用于登录管理后台)
# 注意:执行以下命令前,请确保 Redis 服务已启动
# 如果 Redis 未启动,会提示连接错误
python manage.py init_system_configs
python manage.py import_sites_yaml # 从 config/sites.yaml 导入预设站点
# 生产环境:收集静态文件(logo.png、favicon.ico 等)
# 执行此命令后,所有静态文件会收集到 staticfiles/ 目录
python manage.py collectstatic --noinput静态文件说明:
- 开发环境(DEBUG=True):Django 会自动提供静态文件
- 生产环境(DEBUG=False):需要运行
collectstatic命令收集静态文件到staticfiles/目录 - 如果使用 Nginx 等 Web 服务器,建议配置 Nginx 直接提供静态文件,性能更好
重要提示:启动前请确保以下服务正在运行:
- ☑️ PostgreSQL 数据库服务
- ☑️ Redis 服务(用于 Celery 任务队列和缓存)
开发模式(前台运行):
# 启动 Web 服务 (终端1)
python manage.py runserver
# 启动 Celery Worker (终端2)
celery -A scraper.celery worker --loglevel=info生产模式(后台常驻):
# 启动 Web 服务(后台运行,所有日志统一保存到 logs/crawl_res.log)
nohup python manage.py runserver > /dev/null 2>&1 &
# 启动 Celery Worker(后台运行,所有日志统一保存到 logs/crawl_res.log)
nohup celery -A scraper.celery worker -l info > /dev/null 2>&1 &提示:日志配置已统一保存到
logs/crawl_res.log,包含 Django 框架、Celery 任务、应用代码等所有日志。
crawl-res/
├── apps/search/ # Django 主应用(核心业务)
│ ├── models.py # 数据模型(任务/结果/站点配置)
│ ├── views.py # 视图(前端页面 + 管理后台)
│ ├── tasks.py # Celery 异步任务(爬取/邮件)
│ ├── templates/ # 前端/后台模板文件
│ └── management/commands/ # 自定义管理命令(导入配置/初始化)
├── scraper/ # Scrapy 爬虫模块
│ ├── spiders/
│ │ └── universal.py # 通用爬虫引擎(核心)
│ ├── pipelines.py # 爬虫数据入库管道
│ └── settings.py # Scrapy 配置
├── config/ # 配置文件目录
│ ├── sites.yaml # 站点配置模板
│ └── rules.yaml # 网盘识别规则
├── static/ # 静态资源(图片/图标)
├── manage.py # Django 管理脚本
├── requirements.txt # 项目依赖
├── LICENSE # MIT 许可证
└── README.md # 项目文档
如果您在安装、使用过程中遇到问题,或有定制需求,请通过以下方式联系:
- 微信 (WeChat):csdnxr
- QQ:294323976
- 邮箱 (Email):leoucmao@gmail.com
- Bug反馈:GitHub Issues
- 本项目基于 MIT LICENSE 协议开源。
- 免责声明:本工具仅供技术交流学习,请勿用于非法抓取及侵权行为。因使用本工具造成的任何法律风险,均与原作者无关。
触探 Crawl-Res - 洞察全网资源,检索快人一步。