# music_spider **Repository Path**: eluup/music_spider ## Basic Information - **Project Name**: music_spider - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-09 - **Last Updated**: 2025-10-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 音乐网站爬虫项目 ## 项目介绍 这是一个用于爬取音乐网站(http://music.2t58.com/)音乐资源的Python爬虫项目。该项目支持音乐信息的爬取、存储和批量下载,并提供了友好的命令行接口。 ## 功能特性 - **网页爬取**:支持爬取整个网站、指定分类或搜索特定歌曲 - **数据存储**:支持SQLite和MongoDB两种数据库存储方式 - **批量下载**:支持并发下载音乐文件,可按歌手或专辑分类保存 - **错误处理**:完善的错误重试机制和日志记录 - **命令行接口**:简洁易用的命令行操作界面 ## 项目结构 ``` music_crawler/ ├── docs/ # 文档目录 │ ├── global_crawl_plan.md # 全局爬取方案 │ └── crawl_log.md # 爬取日志 ├── src/ # 源代码目录 │ ├── main.py # 主程序入口 │ ├── crawler.py # 爬虫核心代码 │ ├── downloader.py # 下载器 │ ├── db_manager.py # 数据库管理 │ └── utils.py # 工具函数 ├── config/ # 配置文件 │ └── settings.py # 全局设置 ├── data/ # 数据存储 │ └── music/ # 音乐文件存储目录 ├── requirements.txt # 依赖库列表 └── README.md # 项目说明文档 ``` ## 环境要求 - Python 3.6+ - 依赖库:见requirements.txt ## 安装指南 ### 1. 克隆项目 ```bash # 进入工作目录 cd /System/Volumes/Data/webcode/test # 项目已在此目录创建,无需克隆 ``` ### 2. 安装依赖 ```bash # 在项目根目录执行 pip install -r requirements.txt ``` ### 3. 配置项目 编辑 `config/settings.py` 文件,根据需要修改配置: ```python # 网站基础信息 BASE_URL = "http://music.2t58.com/" # 存储配置 MUSIC_SAVE_PATH = "/System/Volumes/Data/webcode/test/music/data/music/" # 音乐保存路径 DB_TYPE = "sqlite" # 数据库类型:sqlite或mongodb SQLITE_DB_PATH = "/System/Volumes/Data/webcode/test/music/data/music.db" # SQLite数据库路径 # 爬取配置 MAX_RETRY = 3 # 最大重试次数 TIMEOUT = 30 # 请求超时时间(秒) DELAY = 2 # 爬取间隔(秒) MAX_CONCURRENT = 5 # 最大并发数 ``` ## 使用方法 ### 1. 爬取音乐信息 #### 爬取所有分类 ```bash cd src python main.py crawl --all --max-pages 5 ``` #### 爬取指定分类 ```bash cd src python main.py crawl --category http://music.2t58.com/genre/1.html --max-pages 3 ``` #### 搜索歌曲 ```bash cd src python main.py crawl --search "周杰伦" --max-pages 3 ``` ### 2. 下载音乐 #### 下载所有待下载的歌曲 ```bash cd src python main.py download --all --artist-dir --concurrent 5 ``` #### 下载指定数量的歌曲 ```bash cd src python main.py download --count 50 --artist-dir --album-dir ``` ### 3. 查看爬虫状态 ```bash cd src python main.py status ``` ## 注意事项 1. **遵守法律法规**:请确保您的爬取行为符合相关法律法规,仅用于个人学习研究 2. **尊重版权**:下载的音乐资源请不要用于商业用途 3. **避免过度爬取**:设置合理的爬取间隔,避免对目标网站造成过大压力 4. **数据存储**:默认使用SQLite数据库,如需使用MongoDB,请确保已安装并运行MongoDB服务 ## 常见问题 ### Q: 爬取失败或被网站限制怎么办? A: 可以尝试修改settings.py中的DELAY参数增加爬取间隔,或使用代理服务器。 ### Q: 如何修改下载文件的保存路径? A: 在settings.py中修改MUSIC_SAVE_PATH参数。 ### Q: 下载的音乐文件格式是什么? A: 默认下载的是MP3格式,具体格式取决于网站提供的资源。 ## 更新日志 - 2023-11-22: 项目初始化完成,基本功能开发完成 ## 免责声明 本项目仅供学习研究使用,请勿用于任何商业用途。对于使用本项目产生的任何法律责任,由使用者自行承担。