标签:

使用python爬虫爬取网易云音乐

需要使用的模块

只需要requests模块和os模块即可

开始工作

先去网易云音乐网页版找一下你想要听的歌曲点击进去。按键盘F12打开网页调试工具,点击Network就可以查看网络请求的相关信息,选择XHR,然后可以看到一个.mp3结尾的请求:

直觉告诉我,这个.mp3就是这首歌曲,点击请求,可以看到在General栏下面有Request URL,这个url就是这个歌曲的原始套接字所在的地方了,可以打开这个URL看看。

可以看到,这个网页很明显就是一个播放器的样子,再按F12看看这个界面的Network(什么东西都没有的话按F5刷新一下),这个界面点击All才可以看到一个.mp3结尾的文件,对比一下它的General中的Request URL和这个网站的URL,其实是一样的:

那么,这就算是正是找到了这个歌曲的url,现在要做的就是将这个url原始套接字从服务器上下载下来,代码,起:

import requests

import os

headers={

"Accept": "*/*",

"Accept-Encoding": "identity;q=1, *;q=0",

"Accept-Language": "zh-CN,zh;q=0.9",

"Connection": "keep-alive",

"Host": "m10.music.126.net",

"Range": "bytes=0-",

"Referer": "https://m10.music.126.net/20181127170556/ff68375e7e70bb7dcda8fcc6a572951b/ymusic/c7bc/455e/612c/0d891c5408be6d0af16c7fa64945de75.mp3",

"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"

}

def download_musics(dir_,arcurl,filename):

os.mkdir(os.path.join(dir_,filename))

print("正在下载%s" %filename)

size=0

session=requests.Session()

response=session.get(arcurl,headers=headers,stream=True)

chunk_size=1025*400

content_size=int(response.headers['content-length'])

filepath=os.path.join(dir_,filename,filename+'.mp3')

print(content_size)

if response.status_code==206:

with open(filepath,'wb') as file:

for data in response.iter_content(chunk_size=chunk_size):

file.write(data)

size+=len(data)

file.flush()

print('下载进度:%.2f%%\n'%(float(size/content_size*100)))

if size/content_size==1:

print("complete download")

else:

print("连接异常")

if __name__=="__main__":

dir_="E:\python小爬虫\download_music"

#这个网址会不停的变化,旧网址会失效

arcurl="https://m10.music.126.net/20181127181327/8a4190b05a43e70fb543ad1b824a21a4/ymusic/c7bc/455e/612c/0d891c5408be6d0af16c7fa64945de75.mp3"

filename="popstar"

download_musics(dir_,arcurl,filename)

这里需要注意几点:

1、headers的值必须从后面打开的那个网页上的Network找,要么会导致请求的信息不完整。

2、每首歌曲的url是不同的,而且,随着时间的变化,同一首歌曲的url也会发生改变。所以在下载之前一定要再去看一次当前的url是什么。

运行结果

标签:

来源: https://blog.csdn.net/qq_41427568/article/details/84570302

python网易云_用python爬虫爬取网易云音乐相关推荐

  1. python爬虫爬取网易云音乐歌曲_Python网易云音乐爬虫进阶篇

    image.png 年前写过一篇爬网易云音乐评论的文章,爬不了多久又回被封,所以爬下来那么点根本做不了什么分析,后面就再改了下,加入了多线程,一次性爬一个歌手最热门50首歌曲的评论,算是进阶版了- 思 ...

  2. python爬虫----爬取网易云音乐

    使用python爬虫爬取网易云音乐 目录 使用python爬虫爬取网易云音乐 需要使用的模块 开始工作 运行结果 需要使用的模块 只需要requests模块和os模块即可 开始工作 先去网易云音乐网页 ...

  3. python网络爬虫网易云音乐下载_python网络爬虫爬取网易云音乐

    #爬取网易云音乐 url="https://music.163.com/discover/toplist" #歌单连接地址 url2 = 'http://music.163.com ...

  4. java怎么爬网易云_Python爬虫爬取网易云的音乐

    Python爬虫爬取网易云的音乐(学习笔记) 在开始之前,做一点小小的说明哈: 我只是一个python爬虫爱好者,如果本文有侵权,请联系我删除! 本文需要有简单的python爬虫基础,主要用到两个爬虫 ...

  5. Python爬虫—爬取网易云音乐【热歌榜】歌曲的精彩评论(写入txt文本文件或者MySQL数据库)

      最近在学Python爬虫,看了Blibili爬取网易云音乐评论的视频,视频中是将一首歌的评论存入json文件,我在此代码的基础上扩展了三点:     1.爬取热歌榜200首歌曲的精彩评论:     ...

  6. 如何用Python网络爬虫爬取网易云音乐歌曲

    今天小编带大家一起来利用Python爬取网易云音乐,分分钟将网站上的音乐down到本地. 跟着小编运行过代码的筒子们将网易云歌词抓取下来已经不再话下了,在抓取歌词的时候在函数中传入了歌手ID和歌曲名两 ...

  7. java爬取网易云歌单_爬虫爬取网易云歌单

    一.主题式网络爬虫设计方案 1.主题式网络爬虫名称:爬取网易云音乐歌单 2.主题式网络爬虫爬取的内容与数据特征分析 爬取网易云音乐歌单前十页歌单,轻音乐类型的歌单名称.歌单播放量.歌单链接.用户名称. ...

  8. Python3---站在大佬肩膀写爬虫-爬取网易云音乐热歌榜歌曲热评(精彩评论)

    和我一起加入CSDN----程序猿和攻城狮的社区 网易云音乐是我比较喜欢的一个音乐平台,对于特别热爱听歌的人来说,网易云音乐精准的音乐定位和独特歌曲推荐,让人使用起来很舒服.所谓:自古评论出人才,精彩 ...

  9. 反爬虫爬取网易云歌单

    一.主题式网络爬虫设计方案 1.主题式网络爬虫名称:爬取网易云音乐歌单 2.主题式网络爬虫爬取的内容与数据特征分析 爬取网易云音乐歌单前十页歌单,轻音乐类型的歌单名称.歌单播放量.歌单链接.用户名称. ...

最新文章

  1. 剑指offer:面试题13. 机器人的运动范围
  2. luvit 被忽视的lua 高性能框架(仿nodejs)
  3. git使用指南及分支管理策略
  4. 1352. 虫洞【难度: 中 / 枚举 判环】
  5. 日常生活小技巧 -- win10造字
  6. 一句话理解tf.identity的含义
  7. 连不上机器判断机器状态_如何准确估计机器人的状态,增强机器人控制的精度及稳定性...
  8. html整合vue elementui,vue2.0结合Element-ui实战案例
  9. [论文阅读] Exploring Dense Context for Salient Object Detection
  10. .Net并行编程系列文章导航
  11. 万能计算机在线应用,万能计算器在线使用技巧,快点学习吧
  12. occurs-free
  13. Koltin简明学习,also,takeIf,takeUnless
  14. 习题4-5 换硬币(20 分)
  15. 快速找到外贸客户的9种方法(建议收藏)
  16. 【sigma 协议】
  17. 给OkHttp Client添加socks代理
  18. MFC写入xls文件示例
  19. [绍棠] PhotoKit介绍
  20. 人民币国际化推进债市双向开放

热门文章

  1. 探索 .NET Core 依赖注入的 IServiceCollection
  2. .NET工资低?那肯定是你打开的方式不正确
  3. 服务器重新部署踩坑记
  4. 聊一聊mongodb中的 explain 和 hint
  5. 快速打造属于你的接口自动化测试框架
  6. EFCore查询语句生成流程、让EFCore支持批量Update/Delete/MergeInto
  7. 软件设计的第一性原理:结构化抽象
  8. Insider Dev Tour 2019巡演中国站
  9. [NewLife.XCode]数据初始化
  10. .NET Core实战项目之CMS 第五章 入门篇-Dapper的快速入门看这篇就够了