Python批量爬取华语天王巨星周杰伦的音乐

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

小伙伴说想听周杰伦的音乐,有什么网站是可以免费听的,然后他发现咪咕音乐可以免费听周杰伦的歌曲,既然可以免费听,那岂不是可以爬了~

基本开发环境

  • Python 3.6
  • Pycharm
import requests
import parsel

相关模块 pip 安装即可

在这里插入图片描述

目标网站分析

在这里插入图片描述
点击播放按钮,会自动跳转到音乐播放页面

在这里插入图片描述
播放界面有一个下载按钮,点击下载。

是需要登陆账号

在这里插入图片描述

  • 打开开发者工具
  • 选择network
  • 点击立即下载

会有一个下载的数据接口,post请求的数据接口,里面返回的数据有携带音频真实地址。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
复制url地址,是会自动下载文件到本地的

既然是post请求,只需要看data参数的变化,看它需要传递那些参数
在这里插入图片描述
多查看几首歌曲的下载氢气,就可以发现 copyrightId 就是每首音乐的ID值,只需要获取每首歌曲的ID值,就可以下载音乐了。

所以返回到周杰伦的音乐列表页

在这里插入图片描述
可以发现音乐列表页是静态网站,获取可以直接用过requests请求网站解析网站数据,可以获取音乐的ID值以及标题。

现在就是剩下最后一个问题了,那就是翻页,多页获取。

对于翻页爬取,只需要点击下一页,查看url地址的变化,找到其对应的变化规律即可。

在这里插入图片描述
page就是对应的页码,所以翻页爬取也搞定了,接下来就是写代码就好了

1、请求网页获取音乐的ID值以及标题

cookie 我就不带了,你可以自己登陆咪咕音乐之后复制开发者工具里面的

ef get_mp3_info(url):headers = {'cookie': '','user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}response = requests.get(url=url, headers=headers)selector = parsel.Selector(response.text)lis = selector.css('#J_PageSonglist > div.songlist-body > div')for li in lis:page_url = li.css('.song-name-txt::attr(href)').get()mp3_id = page_url.split('/')[-1]title = li.css('.song-name-txt::attr(title)').get()

2、post请求获取音乐下载地址

这里 headers 参数可以不用写这么多,为了方便就直接复制粘贴了,因为是post请求,有一些参数是必要带的,不然得到想要的返回结果。

def get_mp3_url(mp3_id, title):url = 'https://music.migu.cn/v3/api/order/download'headers = {'authority': 'music.migu.cn','method': 'POST','path': '/v3/api/order/download','scheme': 'https','accept': '*/*','accept-encoding': 'gzip, deflate, br','accept-language': 'zh-CN,zh;q=0.9','cache-control': 'no-cache','content-length': '42','content-type': 'application/x-www-form-urlencoded; charset=UTF-8','cookie': '','origin': 'https://music.migu.cn','pragma': 'no-cache','referer': 'https://music.migu.cn/v3/music/order/download/60054701923','sec-fetch-dest': 'empty','sec-fetch-mode': 'cors','sec-fetch-site': 'same-origin','user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36','x-requested-with': 'XMLHttpRequest',}data = {'copyrightId': '{}'.format(mp3_id),'payType': '01','type': '1'}response = requests.post(url=url, data=data, headers=headers)html_data = response.json()mp3_url = html_data['downUrl']

3、保存音乐至本地

保存代码还是比较简单,也是常用的 with open

def download(download_url, title):response = requests.get(url=download_url)path = '音乐\\' + title + '.mp3'with open(path, mode='wb') as f:f.write(response.content)

具体实现效果

有一部分的音乐任然还是需要付费的,所以当你post请求付费音乐的时间,是没有下载地址的,可以写一个判断
在这里插入图片描述
在这里插入图片描述

总结

代码可以优化,这只是最简易版本的爬虫代码,下载速度并不是很快,可以使用多线程爬取,速度更佳,可以自己去动手优化。

爬虫不难,主要是在于分析网站,除非涉及严重加密的网站,比如字体加密,JS数据加密,这些基本大部分网站,只需要花点心思分析网站的数据,就可以爬取了。

字体加密的网站其实也不难,主要是爬取的过程有点繁杂。加油吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/25630.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华语乐坛到底姓什么?------酷狗篇

爬取页面展示 热门榜单——酷狗top500: https://www.kugou.com/yy/rank/home/1-8888.html?fromrank 特色榜单——影视金曲榜: https://www.kugou.com/yy/rank/home/1-33163.html?fromrank 项目分析 对于酷狗top500: 打开network发现酷狗并没有将榜单封装在json里面&#x…

华语电影

转载于:https://www.cnblogs.com/yymn/p/4512893.html

华为eSpace7910话机通讯录配置

1.登录话机IP。默认账号 admin/admin123 2.在左侧导航栏选择高级——服务——通讯录服务器 3.点击通讯录服务器选择LADP 4.按照下图设置LADP选项 LDAP服务器:172.16.237.1 LDAP端口:389 根节点:oucontacts,ouGD,ouAH,dcXXXX,dccom 账号:域…

华为产品测评官-开发者之声 - 产品体验

目录 活动介绍产品体验过程以及感受实战经验(具体的操作步骤和结果) 活动介绍 本期活动有机会使用并评估华为多个产品,包括华为云CodeArts,华为云ModelArts,鲲鹏DevKit,昇腾CANN,昇思MindSpore。无论您是初…

华为语音合成服务,为用户提供实时、可替换、多音调的语音播放体验

在不能操作手机或总盯着手机看的情况下,如何及时获取资讯信息、方便阅读呢?用耳朵听不失为一种好方法。华为机器学习服务的语音合成服务,采用深度神经网络技术,提供高度拟人、流畅自然的语音合成服务。开发者可以在小说阅读、智能…

基于OpenHarmony开发的语音小助手

基于OpenHarmony开发的语音小助手 本教程将演示如何在BearPi-HM_Nano开发板上使用GPIO输入功能去读取语音模块信息,实现****开关灯自由****!! 一、实验前器材准备 语音识别模块 语音播放模块 SD卡 无源喇叭 BearPi-HM_Nano开发板 E53—SC1…

带语音通话功能的华为ME909s-821a使用方法

关键词:华为 HUAWEI ME909s 821a V2 语音 Codec 正文:不少用户反馈,希望华为ME909s-821a模块能带上语音通话功能,其实821a模块引出了PCM数字音频接口,我们只需要外挂一个PCM codec即可实现语音通话功能。但是考虑…

调用华为API实现中文语音识别

目录 1. 作者介绍2. 华为云中文语音识别2.1 录音文件识别与获取2.2 限制要求2.3 对象存储服务(OBS)简介 3. 实验过程以及结果3.1获得API3.2 代码实现3.3 运行结果 参考(可供参考的链接和引用文献) 1. 作者介绍 张楠,女…

chatgpt赋能python:Python处理Word文件的优秀方案

Python处理Word文件的优秀方案 如今,Word文档在生活中变得越来越普遍,不仅在学校或办公室中使用,而且也在日常生活中,像编辑简历、写作业、撰写文档和工作报告等方面也十分常见。因此,学习如何使用Python处理Word文件…

期待文心一言体验号

期待百度文心一言的体验号,用好chatGPT首先要问自己想要什么,该怎么问才能高效拿到想要的目标结果。遇弱则弱,遇强则强,遇到正能量就能传递正能量! 谁有文心一言体验地址麻烦提供一下,交流一下: 下方是回复…

ChatGPT时代:数据标注会成为一种人机交互“语言”么?

标注猿的第70篇原创 一个用数据视角看AI世界的标注猿 大家好,我是AI数据标注猿刘吉,一个用数据视角看AI世界的标注猿。 从去年的10月份到现在有半年的时间没有更新了,去年没有更新是疫情的原因,今年没有更新主要有两个原因一…

Plus 版 Chatgpt,和任何的 PDF 聊天! #Chatpdf

Chatgpt 的出现,颠覆了整个内容生产行业的同时,也极大地提高了很多文字工作者的效率。 于是一时之间,各大公司都在争先推出自己的聊天机器人,希望在这个新兴而庞大的市场分一杯羹。‍‍‍‍‍‍‍‍ 于是 Chatpdf 出现了&#xff…

大厂程序员手把手教你如何写简历(附简历模板)

代码随想录刷题网站上线咯:programmercarl.com,200道力扣题目刷题顺序,详细题解,支持C、Java、Python、Go、JS等多语言版本,一个你只要发现,就会收藏的硬核算法学习网站。 文章目录 简历基调谨慎使用精通两…

ChatGPT做的简历戳中HR心巴,小伙刚毕业就拿下梦想offer!

西风 发自 凹非寺量子位 | 公众号 QbitAI 鹅妹子嘤,最近一位毕业生用ChatGPT生成的求职信,分分钟躲过简历筛选算法。 然后,自己梦寐以求的工作就真的到手了! 这位用ChatGPT帮忙找工作的小伙表示: 三月份以来写所有东西…

软件测试个人求职简历该怎么写,模板在这里

目录 1、个人资料 2、专业技能 3、工作经验 4、项目经验 5、教育背景 1、个人资料 姓 名:xxx 性 别:x 手机号码:138888888xx 邮 箱: xxx 学 历:本科 专 业:电子商务 英 语:四级 当前工作…

程序员简历应该怎么写?

说到程序员简历,这两个月,我看过不下10,000份简历。。。 答主不是HR,也不是技术负责人,但是在网站的运营工作中,每天最开心的事情就是研究候选人的简历了~~ 这些人中,有BAT的资深大牛程序员,也有…

建议这样使用ChatGPT,让你成为更好的开发者

这样使用ChatGPT,让你成为更好的开发者 作为开发人员,您的责任之一是不断学习和提高您的技能。ChatGPT 是一个强大的工具,可以通过多种方式帮助您成为更好的开发人员。如果你不知道什么是 ChatGPT,它是 OpenAI 开发的一种大型语言…

大会线上同步直播, 来不到现场也可以线上看直播,以及参会秘籍

紧急提醒:还有1天! 2020.NET开发者大会就要开幕啦! 你都做好参会准备没有? 特殊时期,为方便小伙伴们顺利参会,小编特意整理了这篇大会参会攻略,大到各种日程安排、小到签到、出行、防疫等&#…

10、记录使用科大讯飞的语音唤醒硬件生成PCM文件,通过ffmpeg库去生成MP3音频文件

基本思想:不太会ffmpeg解析pcm的音频文件,所以记录一下结合具体的场景和具体的应用 具体生成的pcm使用的官方代码,不详细叙述,官方的唤醒模块将会产生一个pcm文件,可使用下列命令或者代码将pcm转成mp3文件&#xff0c…

深兰科技亮相2023数博会:硅基知识大模型推动个人数字化产业

近日,2023中国国际大数据产业博览会 “数字经济与实体经济深度融合”论坛在贵阳举行。腾讯云、京东集团、网易、深兰科技等8家企业负责人进行了行业演讲。 作为2023数博会的专业论坛之一,本次论坛以“数融百业 创变赋新”为主题,从数实融合视…