四行代码Python爬虫下载“网易云付费下载”歌曲。

今天早上学到requests库。然后用三分钟写了个爬虫。四行代码。功能比较简略。一次下载一首。仅供学习交流。

不多说,先上代码:

import requests
r=requests.get('歌曲的url')
with open('保存的文件名','wb') as f:
    f.write(r.content)

我不唬人,四行就真的是四行。但是呢我只会下载可以听但需要付费下载的歌,那些听都要付费听的我还没学到那个地步。以后研究出来再发布。

步骤:

  1. 打开网易云网页版。

2:比如说,我要下载邓紫棋的新歌:平凡世界。我就点进去。

3:打开“开发者工具”。选择网络,点媒体部分。发现没点“播放”前是什么都没有的。

4:点击“播放”。发现多了几个GET链接,这几个链接都是相同的。

5:我们复制这个GET链接,然后打开。发现果然是音乐链接!

6:把这个链接复制到代码那边。然后填好自己想要的文件名。我就填一个“pachong.m4a”。m4a是我们下载的音乐的格式,因为音乐链接本来的格式就是m4a,所以下载下来也得填m4a。(你们想转格式自己研究,很方便的,我这里就不搞了,因为m4a也是手机电脑播放器都支持的,和mp3没两样)

#获取一段音频
import requests
r=requests.get('https://m10.music.126.net/20200311095903/04035a624339d0162516f5b54a0458bd/yyaac/obj/wonDkMOGw6XDiTHCmMOi/1631712277/7d44/28fe/7d74/cb614488c90af705a440a4c5332112d8.m4a')
with open('pachong.m4a','wb') as f:
    f.write(r.content)

7:运行这个程序。发现程序所在文件夹有了我们要的东西。

下面是对这四行代码的一些解释:

图片/音频/视频等这些文件,本质上都是二进制码组成的,因为有特定的保存格式和对应的解析方式,我们才能看到形形色色的多媒体。所以想要抓取它们,就要拿到它的二进制码。

r=requests.get()

拿到网页返回给我们的“数据”,这个数据保存在r这个对象之中,这个对象的格式是:

<class 'requests.models.Response'>

我们创建一个文件“pachong.m4a”。"wb"表示以二进制形式打开,这样就可以往里面装二进制数据了。“.content”表示HTTP返回内容的二进制形式。我们想要音频,而音频本身就是二进制。妙哉!

with open('pachong.m4a','wb') as f:
    f.write(r.content)

用write()写入就行了。

DedSec。

发布了62 篇原创文章 · 获赞 42 · 访问量 1873

猜你喜欢

转载自blog.csdn.net/weixin_45850939/article/details/104790691