python爬网易云_如何用爬虫获取网易云音乐歌单中的歌曲?

—————————————————————————————————

泻药,以我抓取了307835首网易云音乐的歌单歌曲的经验,讲一下这个问题。

喜欢用Github的可以直接看我的项目源码,代码简单、具体使用方法和数据库细节介绍的很全面:Chengyumeng/spider163

我使用的技术栈是Python + MySQL,数据库相关的配置可在spider163.conf中配置。

我使用的策略是,通过热门歌单列表抓取全部歌单名字,热门歌单URL为:网易云音乐

抓下这些热门URL,持久化到数据库中,然后继续通过存储的歌单URL,继续抓取歌单里面的歌曲URL,歌曲的URL格式为:网易云音乐

然后下一步,就是针对网易云音乐的歌曲页面做信息采集,你可以抓的数据有歌曲的词曲作者、歌词、评论等信息,我抓取的数据为歌曲热评和评论总数。

基于此,可以建立这样的抓取模型:歌单列表 -> 歌单 -> 歌曲

------------------------分割线是这么画吗?-----------------------------

相关操作:

抓取热门歌单

$ python playlist.py 1 10

$ # 抓取热门歌单前十页的歌单名字和链接

$ python playlist.py 粤语 1 42

$ # 抓取全部粤语歌单

抓取歌单内歌曲

$ python music.py playlist 376259016

$ # 抓取编号为 376259016 的歌单

$ python music.py database

$ # 抓取存储的热门歌单里面的歌曲,批量抓取

抓取歌曲评论

$ python comment.py

$ # 自动抓取已存储歌曲,并保持去重复

TODO增加抓取歌单页面个性推荐歌单

增加抓取排行榜

严格去重复 ✔️

优化代码结构,冗余代码过多

BUG若干歌单无法抓取,待重现定位

...

虽然我没有使用分布式,但是单线程的效率已经相当不错,这是MySQL的读写图:

基本上可以保证平均一小时1万首音乐的抓取。

我的抓取数据:8600张热门歌单

307835首歌曲

1410482条评论

欢迎大家使用我的代码,并进一步做数据挖掘。

您可以关注我的技术分享微信公众号:程天写代码。交流Python、Go、高可用、云计算等方面学习心得。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值