Movie Crawler 是一个Python应用程序,用于从电影天堂网站(DYTT8)爬取电影信息并下载电影资源。该应用程序还可以检查本地视频文件的完整性,并为损坏的文件找到替代下载链接。
- 爬取电影天堂网站的电影信息
- 将电影信息存储到SQLite数据库中
- 使用Aria2下载电影(支持磁力链接、FTP和迅雷链接)
- 检查电影文件完整性
- 使用AI模型匹配损坏的电影文件并找到替代下载链接
- 使用AI模型批量重命名电影和电视剧文件
- 命令行界面,方便操作
- Python 3.7+
- FFmpeg(用于视频完整性检查)
- Aria2(用于下载功能)
- 克隆仓库:
git clone https://github.com/titc/movie_crawler.git
cd movie_crawler- 安装依赖:
pip install -r requirements.txt- 初始化数据库:
python -m movie_crawler init所有配置选项都位于 movie_crawler/config/ 目录中。您可以根据需要修改以下设置:
paths.py:路径配置(下载目录、电影目录、数据库路径等)network.py:网络配置(代理服务器设置等)services.py:服务配置(Aria2 RPC设置、AI接口设置等)scraper.py:爬虫配置(爬取设置、请求参数等)files.py:文件处理配置
# 默认爬取所有页面(1-428)
python -m movie_crawler scrape
# 指定页面范围
python -m movie_crawler scrape --start-page 1 --end-page 10
# 爬取并立即下载电影
python -m movie_crawler scrape --download# 检查默认目录中的视频文件
python -m movie_crawler check
# 指定目录和最大文件大小
python -m movie_crawler check --directory /path/to/movies --max-size 2.5# 列出所有电影信息
python -m movie_crawler list
# 仅列出下载链接
python -m movie_crawler list --links-only# 重命名电影文件(使用AI整理格式)
python -m movie_crawler rename --type movie --source /path/to/downloads --target /path/to/movies
# 使用AI重命名电视剧文件
python -m movie_crawler rename --type tv --source /path/to/tv_show
# 使用正则表达式重命名电视剧文件(针对特定格式)
python -m movie_crawler rename --type tv --source /path/to/tv_show --regex \
--pattern "^\[DBD-Raws\]\[家庭教师\]\[(\d+)\].*?(\..+)$" \
--show-name "家庭教师" --season 1movie_crawler/
├── LICENSE # 许可证文件
├── README.md # 项目文档
├── requirements.txt # 项目依赖
├── pyproject.toml # Python 项目配置文件
├── movie_crawler/ # 主包目录
│ ├── __init__.py # 包初始化文件
│ ├── __main__.py # 主入口点
│ ├── config/ # 配置模块
│ │ ├── __init__.py
│ │ ├── files.py # 文件处理配置
│ │ ├── network.py # 网络配置
│ │ ├── paths.py # 路径配置
│ │ ├── scraper.py # 爬虫配置
│ │ └── services.py # 服务配置
│ ├── utils/ # 工具模块
│ │ ├── __init__.py
│ │ ├── common.py # 通用工具函数
│ │ └── database.py # 数据库操作
│ ├── scraper/ # 爬虫模块
│ │ ├── __init__.py
│ │ └── movie_scraper.py # 电影爬虫
│ ├── checker/ # 检查模块
│ │ ├── __init__.py
│ │ └── movie_checker.py # 视频完整性检查
│ ├── downloader/ # 下载模块
│ │ ├── __init__.py
│ │ └── aria2.py # Aria2下载器
│ └── renamer/ # 重命名模块
│ ├── __init__.py
│ └── movie_renamer.py # 电影和电视剧重命名
├── db/ # 数据库目录
│ └── movie.db # SQLite数据库文件
├── logs/ # 日志目录
└── *.log # 日志文件
- 项目重构,改进代码结构和模块化
- 增加了模块化设计,使用包层次结构
- 明确的职责分离:核心、爬虫、检查、下载、重命名和工具模块
- 添加了命令行界面
- 添加了AI驱动的电影和电视剧重命名功能
- 改进了日志记录和错误处理
- 集中配置管理
- 增加了更全面的文档
此项目采用AGPL-3.0许可证 - 详情请参阅LICENSE文件。