# crawl-res **Repository Path**: elfbobo_admin_admin/crawl-res ## Basic Information - **Project Name**: crawl-res - **Description**: 触探 (Crawl-Res) 是一款基于 Django + Scrapy + Celery 开发的全流程自动化资源检索系统,采用“配置即爬虫”的插件化设计,支持多站点异步并行抓取、智能链接提取与邮件自动推送,无需编写代码即可快速适配全网资源站。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-01-05 - **Last Updated**: 2026-01-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
触探 Crawl-Res Logo # 触探 (Crawl-Res) **全网资源异步检索与自动化通知系统** [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) [![Python Version](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/) [![PostgreSQL](https://img.shields.io/badge/database-PostgreSQL%2012+-blue.svg)](https://www.postgresql.org/) [![Redis](https://img.shields.io/badge/middleware-Redis-red.svg)](https://redis.io/) [![Framework](https://img.shields.io/badge/framework-Django%20%7C%20Celery%20%7C%20Scrapy-purple.svg)](https://www.djangoproject.com/) [![Workflow](https://img.shields.io/badge/workflow-Async%20Crawl%20%7C%20Email%20Notify-brightgreen.svg)]()

在线演示核心亮点部署指南提交Bug

触探是一款专为资源站长、情报员打造的**全流程自动化检索工具**。 **核心能力**:通过在后台数据库配置站点规则,即可像“安装插件”一样快速适配全网资源站,实现“配置化爬虫 -> 异步并行检索 -> 智能链接提取 -> 邮件自动推送”的闭环。
--- ## 🌐 在线演示 (Demo) * **🔍 搜索前端**:[https://crawl.ucmao.cn](https://crawl.ucmao.cn) (极简搜索入口,体验异步推送逻辑) * **⚙️ 管理后台**: [https://crawl.ucmao.cn/admin](https://crawl.ucmao.cn/admin) * **管理账号**: `admin` | **管理密码**: `admin123` --- ## ✨ 核心亮点 * **🧩 插件化配置引擎**:**无需编写一行代码!** 采用“配置即爬虫”的设计理念,通过定义站点采集规则,支持在后台可视化增删改查,实现分钟级快速适配新站点。 * **🚀 万能匹配协议**:支持 GET/POST 请求、自定义 Headers 伪装、动态变量提取(如 CSRF Token 自动流转)及双级跳转解析,能够兼容大部分资源网站。 * **📧 智能通知闭环**:任务异步执行,完成后自动通过邮件将资源链接发送至用户邮箱,支持结果持久化与 CSV 导出。 * **🛡️ 完善的管理系统**:内置邮箱黑白名单规则、系统级限流策略(分钟/小时/天)、任务缓存机制,确保系统在高并发下的稳定性。 --- ## 🏗️ 技术架构 ### 架构流转图 ```text 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+ 站点正陆续适配中。 --- ## ⚙️ 系统配置参数 (SystemConfig) 系统内置邮件发送限流(分钟 / 小时 / 天多级控制)、关键词与任务缓存机制、资源广场展示与过期策略,以及爬虫任务超时与结果有效期控制,所有参数均可按需调整以平衡性能、稳定性与资源消耗。 --- ## 🚀 快速开始 ### 1. 环境准备 * **Python**: 3.8+ | **PostgreSQL**: 12+ | **Redis**: 5.0+缓存与消息中间件 ### 2. 环境变量配置 项目通过 `.env` 文件配置环境变量,把项目根目录`.env.example` 重命名为 `.env` 文件: ```bash # 数据库配置 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 ``` **验证服务状态**: ```bash # 检查 PostgreSQL pg_isready -h localhost -p 5432 # 检查 Redis redis-cli ping # 应该返回: PONG ``` ### 3. 部署步骤 ```bash # 获取源码 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 直接提供静态文件,性能更好 ### 4. 启动指令 **重要提示**:启动前请确保以下服务正在运行: - ☑️ PostgreSQL 数据库服务 - ☑️ Redis 服务(用于 Celery 任务队列和缓存) **开发模式(前台运行)**: ```bash # 启动 Web 服务 (终端1) python manage.py runserver # 启动 Celery Worker (终端2) celery -A scraper.celery worker --loglevel=info ``` **生产模式(后台常驻)**: ```bash # 启动 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 任务、应用代码等所有日志。 --- ## 📂 项目结构 ```text 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](https://github.com/ucmao/crawl-res/issues) --- ## ⚖️ 开源协议 & 免责声明 1. 本项目基于 **[MIT LICENSE](LICENSE)** 协议开源。 2. **免责声明**:本工具仅供技术交流学习,请勿用于非法抓取及侵权行为。因使用本工具造成的任何法律风险,均与原作者无关。 **触探 Crawl-Res** - 洞察全网资源,检索快人一步。 ---