某音乐网站爬取总结
最近经常访问的一个纯音乐网站公告因为不可抗力要关闭了,想着把网站的音乐全爬一下,最后总共获取到近7万条数据,300多G音乐文件(oss被我干欠费了,音乐网站的备用链接应该是站长自己搭的,短时间没明白如何防盗的就没搞),现总结一下注意事项。
如何保证文件完整性
1、网页请求状态码需要判断一下。
2、下载文件时为文件添加诸如.xxx
后缀,下载完毕再重命名文件。
如何跑满带宽
想要跑满带宽主要是堆线程,多线程下载(go语言这里是堆协程),我试了试网上控制协程数量的方法,不好用,协程数量上不去,同样的程序在windows上和linux上表现的也不一样,很让我疑惑。
var wg sync.WaitGroup
var num int
wg.Add(1)
for i := 1; i < 1000; i++ {
num++
// 获取文件链接和其他信息
go func() {
// 下载文件
num--
fmt.Printf("\r总协程数:%d", runtime.NumGoroutine())
}()
if num > 50 {
time.Sleep(time.Second)
}
}
wg.Wait()
爬取文件分享
播放量大于200或者点赞量大于10的两万多首纯音乐分享,附带sql。
https://pan.baidu.com/s/1cef05Wey3X2Yv1e8wF96JA?pwd=m7eg
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 行走的博客!
评论