- 使用代理
- 详细解析电影项目的详细信息,写入csv文件
- 爬取电影的评论
- 设立独立的sql数据库,而不是写在 GitHub仓库中
- 时间设置,目前是每10分钟爬取一次数据。
- 发送邮件提醒,目前是启动的时候发送一次,每爬取20条消息也会法送一次
- 使用scrapy框架
- 使用scrapy框架
- 使用vercel搭建服务,访问地址为https://netease.pengfeima.cn
- 爬取一个歌手的所有歌曲:歌手 => 专辑 => 歌曲
import eyed3 audiofile = eyed3.load('阿的说法饿.mp3') audiofile.tag.title = '晴天' # 标题 ok audiofile.tag.artist = '周杰伦' # 艺术家 ok audiofile.tag.album = '叶惠美' # 唱片集 ok audiofile.tag.recording_date = '2003' # 年份 ok audiofile.tag.track_num = 3 # 音轨号 ok audiofile.tag.genre = 'Pop' # 流派 X audiofile.tag.comments.set('Hello World!') # 注释(专辑描述) ok audiofile.tag.album_artist = '周杰伦' # 专辑集艺术家 ok audiofile.tag.composer = '周杰伦' # 作曲家 X audiofile.tag.aa = 3 # CD号 光盘编号 X audiofile.tag.images.set( type_=3, img_data=open('RE4wEas.jpeg', 'rb').read(), mime_type='image/jpeg') # 封面(专辑封面) ok audiofile.tag.save(version=eyed3.id3.ID3_DEFAULT_VERSION, encoding='utf-8')
清空Git仓库所有历史,减少仓库体积的方法:
git checkout --orphan latest_branch
git add -A
git commit -am "commit"
git branch -D main
git branch -m main
git push -f origin main
name: String, 歌曲标题
id: u64, 歌曲ID
pst: 0,功能未知
t: enum,
0: 一般类型
1: 通过云盘上传的音乐,网易云不存在公开对应
如果没有权限将不可用,除了歌曲长度以外大部分信息都为null。
可以通过 /api/v1/playlist/manipulate/tracks
接口添加到播放列表。
如果添加到“我喜欢的音乐”,则仅自己可见,除了长度以外各种信息均为未知,且无法播放。
如果添加到一般播放列表,虽然返回code 200,但是并没有效果。
网页端打开会看到404画面。
属于这种歌曲的例子: https://music.163.com/song/1345937107
2: 通过云盘上传的音乐,网易云存在公开对应
如果没有权限则只能看到信息,但无法直接获取到文件。
可以通过 /api/v1/playlist/manipulate/tracks
接口添加到播放列表。
如果添加到“我喜欢的音乐”,则仅自己可见,且无法播放。
如果添加到一般播放列表,则自己会看到显示“云盘文件”,且云盘会多出其对应的网易云公开歌曲。其他人看到的是其对应的网易云公开歌曲。
网页端打开会看到404画面。
属于这种歌曲的例子: https://music.163.com/song/435005015
ar: Vec, 歌手列表
alia: Vec,
别名列表,第一个别名会被显示作副标题
例子: https://music.163.com/song/536623501
pop: 小数,常取[0.0, 100.0]中离散的几个数值, 表示歌曲热度
st: 0: 功能未知
rt: Option, None、空白字串、或者类似600902000007902089
的字符串,功能未知
fee: enum,
0: 免费或无版权
1: VIP 歌曲
4: 购买专辑
8: 非会员可免费播放低音质,会员可播放高音质及下载
fee 为 1 或 8 的歌曲均可单独购买 2 元单曲
v: u64, 常为[1, ?]任意数字, 代表歌曲当前信息版本
version: u64, 常为[1, ?]任意数字, 代表歌曲当前信息版本
crbt: Option, None或字符串表示的十六进制,功能未知
cf: Option, 空白字串或者None,功能未知
al: Album, 专辑,如果是DJ节目(dj_type != 0)或者无专辑信息(single == 1),则专辑id为0
dt: u64, 歌曲时长
sq: Option, 无损质量文件信息
h: Option, 高质量文件信息
m: Option, 中质量文件信息
l: Option, 低质量文件信息
a: Option<?>, 常为None, 功能未知
cd: Option, None或如"04", "1/2", "3", "null"的字符串,表示歌曲属于专辑中第几张CD,对应音频文件的Tag
no: u32, 表示歌曲属于CD中第几曲,0表示没有这个字段,对应音频文件的Tag
rtUrl: Option<String(?)>, 常为None, 功能未知
rtUrls: Vec<String(?)>, 常为空列表, 功能未知
djId: u64,
0: 不是DJ节目
其他:是DJ节目,表示DJ ID
copyright: u32, 0, 1, 2: 功能未知
s_id: u64, 对于t == 2的歌曲,表示匹配到的公开版本歌曲ID
mark: u64, 功能未知
originCoverType: enum
0: 未知
1: 原曲
2: 翻唱
originSongSimpleData: Option, 对于翻唱曲,可选提供原曲简单格式的信息
single: enum,
0: 有专辑信息或者是DJ节目
1: 未知专辑
noCopyrightRcmd: Option, None表示可以播,非空表示无版权
mv: u64, 非零表示有MV ID
rtype: 常为0,功能未知
rurl: Option<String(?)>, 常为None,功能未知
mst: u32, 偶尔为0, 常为9,功能未知
cp: u64, 功能未知
publishTime: i64, 毫秒为单位的Unix时间戳
pc: 云盘歌曲信息,如果不存在该字段,则为非云盘歌曲