AI大模型分析电影写微小说项目:字幕站自动下载工具

这是一个用于自动化下载字幕网站字幕文件的Python爬虫工具。是一个知名的字幕分享网站,但手动下载大量字幕文件比较繁琐。这个工具可以自动批量下载字幕文件,支持日期页面和顺序页面两种URL格式,每个页面只下载第一个可用的字幕文件。

功能特点

🚀 核心功能

  • 自动登录:使用Cookie实现免验证码登录
  • 批量下载:支持批量下载日期页面和顺序页面的字幕文件
  • 智能解析:自动解析页面结构,定位下载链接
  • 文件名处理:自动处理中文乱码,保持原始文件名
  • 速率控制:可配置的下载间隔,减轻服务器负担

📁 支持的格式

  • 字幕文件:.srt, .ass, .ssa, .sub
  • 压缩包:.zip, .rar, .7z

🔧 技术特性

  • 使用Requests库进行HTTP请求
  • 使用BeautifulSoup解析HTML
  • 自动处理Cookie会话
  • 智能编码转换,解决中文乱码问题
  • 完善的错误处理和日志记录

安装与配置

环境要求

  • Python 3.6+
  • 依赖库:
    1
    pip install requests beautifulsoup4

配置文件

  1. 在代码中设置Cookie:

    1
    cookie = "PHPSESSID=your_session_id; zmk_home_view_subid=your_subid; security_session_verify=your_verify"
  2. 配置下载参数:

    • 下载间隔:self.delay = 5(默认5秒)
    • 保存目录:self.download_dir = "download_srt"

使用方法

基本用法

1
2
3
4
5
6
7
8
# 创建下载器实例
downloader = SubtitleDownloader(cookie)

# 下载日期页面字幕
downloader.download_from_date_pages(start_year=2024, start_month=3, end_month=12)

# 下载顺序页面字幕
downloader.download_from_sequence_pages(start_id=151336, end_id=151400)

命令行运行

1
python spider_.py

项目结构

1
2
3
4
5
6
7
8
9
spider_.py
├── SubtitleDownloader类
│ ├── __init__() # 初始化,设置Cookie和headers
│ ├── decode_filename() # 解码文件名,处理乱码
│ ├── download_subtitle() # 下载单个字幕文件
│ ├── parse_page() # 解析页面获取下载链接
│ ├── download_from_date_pages() # 批量下载日期页面
│ └── download_from_sequence_pages() # 批量下载顺序页面
└── main()函数 # 程序入口

详细配置说明

Cookie获取方法

  1. 使用浏览器登录网站
  2. 打开开发者工具(F12)
  3. 在Application/Cookies中查找相关Cookie
  4. 复制完整的Cookie字符串

页面URL格式

  1. 日期页面https://.org/dld/202403.html

    • 格式:YYYYMM.html
    • 示例:202403表示2024年3月
  2. 顺序页面https://.org/dld/151336.html

    • 格式:数字ID.html
    • ID范围可自定义

下载策略

  • 每个页面只下载第一个有效链接
  • 遇到”该字幕不可下载!”提示时跳过
  • 文件名重复时自动添加序号
  • 默认5秒下载间隔,避免被封禁

高级功能

自定义下载范围

1
2
3
4
5
# 下载2024年全年的字幕
downloader.download_from_date_pages(start_year=2024, start_month=1, end_month=12)

# 下载大量顺序页面
downloader.download_from_sequence_pages(start_id=150000, end_id=160000)

错误处理

  • 自动检测无效页面
  • 网络异常重试
  • 详细的错误日志输出

性能优化

  • 会话保持,减少登录开销
  • 流式下载,节省内存
  • 智能编码检测,提高兼容性

注意事项

⚠️ 使用限制

  1. 遵守robots.txt:请尊重网站的爬虫协议
  2. 合理使用:避免高频请求,建议保持5秒以上间隔
  3. 版权尊重:仅用于个人学习研究,请勿用于商业用途
  4. 账号安全:不要分享个人Cookie信息

🔒 隐私保护

  • Cookie信息本地存储,不上传任何服务器
  • 仅下载公开可访问的字幕文件
  • 不收集用户个人信息

故障排除

常见问题

  1. 下载失败:检查网络连接和Cookie有效性
  2. 文件名乱码:自动解码功能会处理大多数情况
  3. 找不到链接:确认页面结构是否变化,可能需要调整选择器

调试方法

启用详细日志:

1
2
# 在parse_page()方法中添加调试信息
print(f"页面响应:{response.text[:500]}")

扩展开发

添加新功能

  1. 代理支持:在session中配置代理
  2. 多线程下载:使用concurrent.futures模块
  3. 断点续传:记录已下载的文件ID
  4. GUI界面:使用tkinter或PyQt5