Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

触探 Crawl-Res Logo

触探 (Crawl-Res)

全网资源异步检索与自动化通知系统

License Python Version PostgreSQL Redis Framework Workflow

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

触探是一款专为资源站长、情报员打造的全流程自动化检索工具。

核心能力:通过在后台数据库配置站点规则,即可像“安装插件”一样快速适配全网资源站,实现“配置化爬虫 -> 异步并行检索 -> 智能链接提取 -> 邮件自动推送”的闭环。


🌐 在线演示 (Demo)


✨ 核心亮点

  • 🧩 插件化配置引擎:无需编写一行代码! 采用“配置即爬虫”的设计理念,通过定义站点采集规则,支持在后台可视化增删改查,实现分钟级快速适配新站点。
  • 🚀 万能匹配协议:支持 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+ 站点正陆续适配中。


⚙️ 系统配置参数 (SystemConfig)

系统内置邮件发送限流(分钟 / 小时 / 天多级控制)、关键词与任务缓存机制、资源广场展示与过期策略,以及爬虫任务超时与结果有效期控制,所有参数均可按需调整以平衡性能、稳定性与资源消耗。


🚀 快速开始

1. 环境准备

  • Python: 3.8+ | PostgreSQL: 12+ | Redis: 5.0+缓存与消息中间件

2. 环境变量配置

项目通过 .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

3. 部署步骤

# 获取源码
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 任务队列和缓存)

开发模式(前台运行):

# 启动 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                     # 项目文档

📩 联系作者

如果您在安装、使用过程中遇到问题,或有定制需求,请通过以下方式联系:


⚖️ 开源协议 & 免责声明

  1. 本项目基于 MIT LICENSE 协议开源。
  2. 免责声明:本工具仅供技术交流学习,请勿用于非法抓取及侵权行为。因使用本工具造成的任何法律风险,均与原作者无关。

触探 Crawl-Res - 洞察全网资源,检索快人一步。


About

Crawl-Res是一款基于 Django + Scrapy + Celery 开发的全流程自动化资源检索系统,采用“配置即爬虫”的插件化设计,支持多站点异步并行抓取、智能链接提取与邮件自动推送,无需编写代码即可快速适配全网资源站。

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages