哪里可以免费听到周杰伦的歌曲?请看这里,教你免费听歌

前言

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

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

哪里可以免费听到周杰伦的歌曲?请看这里,教你免费听歌

 

基本开发环境

  • 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/61434.html

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

相关文章

计算机音乐谱大全告白气球,周杰伦《告白气球》钢琴曲谱

《告白气球》是由方文山作词,周杰伦作曲并演唱的歌曲,收录于周杰伦2016年6月24日发行的专辑《周杰伦的床边故事》中。2017年1月,这首歌曲获得Billboard Radio China 2016年度十大金曲奖。 创作背景 词作者方文山为周杰伦创作了《印地安老斑鸠…

周杰伦的歌里都有些啥?

周董的夕阳红粉丝团“被迫营业”,把蔡徐坤拉下了盘踞许久的微博超话人气榜第一,还一举破了亿。 当然,等我知道的时候,都战局已定了……作为当年会唱前三张专辑里所有歌曲的老粉,不想就这么躺赢,我今天也来给…

Python+pyecharts研究周杰伦歌词中的 秘密

一个朋友很喜欢周杰伦。 所以,前两天我跟别人去KTV,就唱的是“七里香”。 唱着唱歌,突然就好奇了起来。周杰伦的歌里,是不是还有很多的麻雀 后来发现,270首歌,140786个字,千言万语&#xff0…

周杰伦入局元宇宙,带你搞懂元宇宙怎么玩

自古以来,每个新兴产业的崛起,最关键、最重要的元素一定是流量,这对于元宇宙来说亦是如此。如果Facebook的入局元宇宙行业吸引了第一波市场流量,那么NBA球星史蒂芬库里、歌手林俊杰、周杰伦等明星入局的影响力就为“元宇宙”吸引了…

HTML网页设计:周杰伦网站

Hello朋友们!我们又见面了!是不是又到了焦头烂额忙期末设计的作业的时候了,不要担心,我来了,经过不懈的努力写出了一个比较容易懂的网页,完全足够应付你亲爱的老师的网页设计大作业! 哦&#xf…

用matlab演奏周杰伦的《七里香》

问题描述 前几天在学习matlab的时候,发现了一篇用matlab演奏音乐的文章,不禁感叹matlab居然还能这么玩!于是我就学着用matlab演奏我最喜欢听的一首歌——周杰伦的《七里香》。最后成果我已经发到B站,链接为:用matlab演…

WPF 消息传递简明教程

WPF 消息传递简明教程 独立观察员 2023 年 4 月 24 日 0、说明 参考:https://www.cnblogs.com/cdaniu/p/16852620.html 使用包:CommunityToolkit.Mvvm(8.1.0) 1、订阅 让需要使用消息的 ViewModel 继承 ObservableRecipient&#…

VMware官网注册账号之验证码问题

VMware官网注册账号之验证码问题 首先上个官网注册账号链接~ https://my.vmware.com/zh/web/vmware/registration 点我访问官网注册 然后不出意外都会看见中文版页面 这时候不要着急注册,因为你会发现验证码是这个造型的 抓狂的时候来了,不…

ChatGpt3.5 使用小记001

使用了一段时间的ChatGpt。主要的用途是向它咨询些学习的问题。因为有些它的分类是对话形式的,所以,一定问题多了,自己都不好找。故此想稍做整理,在此留存。 1.英语学习类 英语单词类,主要是因为有些近义词在中文的翻…

chatgpt赋能Python-python3_5怎么打开

Python 3.5怎么打开?教你几种方法 Python是目前非常流行的一种编程语言,几乎在所有行业都得到了广泛的应用。Python非常容易上手,且有强大的数据处理和科学计算能力。现在我们来说一下,如何在您的计算机上打开Python 3.5。 方法…

python-openCV实现银行卡卡号识别

实现效果: code import cv2 as cv import numpy as np# 轮廓排序 默认从左到右 # --cnts 待排序的轮廓列表 # --method 排序方法 自上而下,从左到右等 def sort_contours(cnts, method"left-to-right"):# 初始化反向标志和排序索引reverse F…

opencv之银行卡号识别

1.项目背景 1.1 项目介绍 这个一个opencv的经典应用,所以用它来熟悉之前的一些操作。 1.2 项目目的 通过此程序可以识别出银行卡图片中包括的银行卡卡号。 2.项目介绍 此项目主要分为两部分:模板图片处理,银行卡图片处理。 模板图片: 银行卡图片示例: 2.1 模板图片处…

【OpenCV】银行卡号识别

文章目录 前言一、环境二、代码总结 前言 本文引用其他作者代码,本文仅供记录用。详细内容可看此处 一、环境 如果提示没有imutils模块就pip install imutils 提供一个字体模板文件和银行卡图片。可以右键保存。 字体模板文件: 银行卡图片&#xff1b…

opencv-python 银行卡卡号识别

模板: 银行卡: 主要思路:用遮盖法 将无关紧要的上面和下面部分截掉,保留银行卡号差不多的位置,然后用opencv做图像处理,得到四个 连着数字的小框框,然后再在四个小框框里面提取出每一个单个的…

使用 OpenCV 和 Python 识别信用卡号

使用 OpenCV 和 Python 识别信用卡号 在之前的博文中,我们学习了如何安装 Tesseract 二进制文件并将其用于 OCR。 然后我们学习了如何使用基本的图像处理技术来清理图像以提高 Tesseract OCR 的输出。 但是,不应将 Tesseract 视为能够获得高精度的光学…

OpenCV-Python 模板匹配的银行卡号识别

目录 实现流程模板数字处理对模板图片进行二值化处理对二值化后的图片进行轮廓检测确定每个模板数字的图像 银行卡图片处理预处理确定每组数字轮廓检测每个数字提取数字组中的数字 模板匹配附录完整代码 实现流程 对数字模板进行处理,提取出单一数字的图片&#xf…

银行卡验证接口API(仅需一行代码,实现全国银行卡核验)

银行卡确认在互联网越来越普及,在二手、电商、贷款、等主流互联网应用中都有明确的刚需,传统的 银行卡核验方式是用户上传图片,客服后台人肉审核,但问题在于根本无从确认 银行卡的真实性,也不能确认该 银行卡持有人和身…

openCV+Python实战练习——银行卡号识别

目录 项目Introduce: 项目名称: 具体操作步骤以及代码: 实现结果展示: 代码整体展示: 项目Introduce: 项目名称: 通过导入模板数字,对银行卡面上的数字进行识别,提…

【opencv学习】银行卡的识别

今天做一个小项目,运用已经学到的知识,做一个银行卡的识别。 银行卡的图像如下 这个银行卡是的数字模板是 现在我的任务是识别中间的16个数字 大致思路是: 1:读取模板,获得每个数字的模板信息 2:读取银行…

OpenCV C++案例实战二十《银行卡号识别》

OpenCV C案例实战二十《银行卡号识别》 前言一、获取模板图像1.1 功能效果1.2 功能源码 二、银行卡号定位2.1 将银行卡号切割成四块2.1.1 功能效果2.1.2 功能源码 2.2 字符切割2.2.1 功能效果2.2.2 功能源码 三、字符识别3.1.读取文件3.2.字符匹配3.3.功能源码 四、效果显示4.1…