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

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages