最近经常访问的一个纯音乐网站公告因为不可抗力要关闭了,想着把网站的音乐全爬一下,最后总共获取到近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