Python爬虫之爬取酷狗音乐歌曲

Python爬虫之爬取酷狗音乐歌曲

1.安装第三方库

在Python的语言库中, 分为Python标准库和Python的第三方库. Python标准库是在你安装Python的时候已经包含在了安装目录下, 而Python第三方库需要使用Python的包管理pip来安装. 在本次代码中, 我们需要用到request库. requests翻译成中文就是请求, 顾名思义, requests是用来模拟用户向服务器发出请求.下面我来介绍如何安装requests库:打开cmd, 输入pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple, 如果出现黄色字体, 请先执行pip install pip -U -i https://pypi.tuna.tsinghua.edu.cn/simple. 反之, 及下载成功

2.验证下载是否成功.

打开python处理器, 输入import requests, 如果没有出现异常, 即下载成功. 反之, 请检查之前的配置.
无

3.代码

#!Python
# -*- encoding: utf-8 -*-
'''
1.文件名称 : MisicSpider.py
2.创建时间 : 2021/02/19 08:53:49
3.作者名称 : ZAY
4.Python版本 : 3.7.0
'''import re
import getpass
import requests
from os import systemclass Spider():def __init__(self):self.search_url = "http://songsearch.kugou.com/song_search_v2?callback=jQuery1124006980366032059648_1518578518932&keyword={}&page=1&pagesize=50&userid=-1&clientver=&platform=WebFilter&tag=em&filter=2&iscorrection=1&privilege_filter=0&_=1518578518934"self.url_headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36"}self.geturl_headers = {"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","accept-encoding": "gzip, deflate, br","accept-language": "zh-CN,zh;q=0.9,en;q=0.8","cache-control": "max-age=0","cookie": "kg_mid=c597a55462cdb05b2f7dbcfe063c8e47; kg_dfid=1aF7SZ2FNXam3bTvyn0jEMtb; kg_dfid_collect=d41d8cd98f00b204e9800998ecf8427e; Hm_lvt_aedee6983d4cfc62f509129360d6bb3d=1613640833; Hm_lpvt_aedee6983d4cfc62f509129360d6bb3d=1613641014","if-modified-since": "Thu, 18 Feb 2021 11:14:12 GMT","sec-fetch-dest": "document","sec-fetch-mode": "navigate","sec-fetch-site": "none","sec-fetch-user": "?1","upgrade-insecure-requests": "1","user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36"}self.api_url = "https://wwwapi.kugou.com/yy/index.php?r=play/getdata&hash={}&album_id={}"def search(self):"""用来为用户提供搜索的函数"""# 调用接口, 用来获取搜索的json数据search_url = self.search_url.format(input("请输入你要下载的音乐的名称:"))response = requests.get(search_url, headers=self.url_headers).text# 筛选出有用json数据pydata = eval(re.match("jQuery1124006980366032059648_1518578518932((.*))", response).group(1))['data']['lists']number = len(pydata)number = range(0, number)for num in number:# 筛选并打印搜索结果song_name = pydata[num]['FileName'].replace('<em>', '').replace('</em>', '').replace('<\/em>', '')song_num = str(num + 1)print(song_num + '.\t\t' + song_name)# 获取用户想要下载的歌曲num = int(input("请输入你要下载的音乐的序号:"))-1song_name = pydata[num]['FileName'].replace('<em>', '').replace('</em>', '').replace('<\/em>', '')# 根据用户输入, 获取重要的json数据,并调用下载函数song_hash = pydata[num]['FileHash']song_id = pydata[num]['AlbumID']self.download_music(song_name, song_hash, song_id)def download_music(self, name, hash, id):"""通过api链接, 用来下载音乐的函数"""download_url = self.api_url.format(hash, id)response = requests.get(download_url, headers=self.geturl_headers)response.encoding = 'utf-8'music_data = eval(response.text.replace('true', 'True').replace('false', 'False'))['data']# 用来获取数据中的音乐的下载链接music_url = music_data['play_url'].replace('\\', '/').replace('//', '/')path = "C:\\Users\\%s\\Music\\" % (getpass.getuser())print("正在现在歌曲--> %s" % (name) + ' --> 请耐心等待...')print("下载链接为--> %s" % (music_url))music = requests.get(music_url, headers=self.url_headers).contentwith open(path + name + '.mp3', 'wb') as file:file.write(music)print("下载成功!!!")input()system('cls')if __name__ == "__main__":# 运行程序spider = Spider()while True:spider.search()

下载速度可能有点慢, 请耐心等待. 下载完成后, 歌曲回保存在C:\Users\你的用户名\Music\目录下.运行效果如下:
无

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

(统计学习方法|李航)第四章 朴素贝叶斯算法——贝叶斯估计

贝叶斯估计方法&#xff1a; 计算男女时只有两个值&#xff0c;所以K2 贝叶斯估计就是拉普拉斯平滑 估计方法&#xff1a;为什么叫做贝叶斯估计呢&#xff1f; 例题&#xff1a; 重新回顾以下朴素贝叶斯&#xff1a; 对他求导&#xff0c;求出最大值 得到了色i他的估计值&…

数据归一化:优化数据处理的必备技巧

文章目录 &#x1f340;引言&#x1f340;数据归一化的概念&#x1f340;数据归一化的应用&#x1f340;数据归一化的注意事项与实践建议&#x1f340;代码演示&#x1f340;在sklearn中使用归一化&#x1f340;结语 &#x1f340;引言 在当今数据驱动的时代&#xff0c;数据的…

制造业为什么要建设数字化供应链

数字化让越来越多的人走向了线上的世界&#xff0c;让那些拥有线上产品或提供线上服务的企业提供了更多流量。 但与此同时&#xff0c;传统制造业遭受了沉重的打击&#xff0c;考虑到防疫要求&#xff0c;很多工厂长期处于人手不足的状态&#xff0c;生产制造效率大幅降低&…

架构设计第八讲:架构 - 理解架构的模式2 (重点)

架构设计第八讲&#xff1a;架构 - 理解架构的模式2 (重点) 本文是架构设计第8讲&#xff1a;架构 - 理解架构的模式2&#xff0c;整理自朱晔的互联网架构实践心得, 他是结合了 微软给出的云架构的一些模式的基础上加入他自己的理解来总结互联网架构中具体的一些模式。我在此基…

设计师常用的几个资源网站,你都知道吗?

如果你是一名设计师&#xff0c;你的电脑上可能存储了很多的设计网站&#xff0c;但是碎玉一些新手小白来说&#xff0c;刚接触设计的时候应该怎样进行绘制呢&#xff1f;难道要自己去一笔一笔的进行绘制吗&#xff1f;下面给大家分享几个设计网站&#xff0c;一起来看看吧&…

设计师常用的几个资源网站分享,再也不用为没有素材发愁

如果你是一名设计师&#xff0c;你的电脑上可能存储了很多的设计网站&#xff0c;但是碎玉一些新手小白来说&#xff0c;刚接触设计的时候应该怎样进行绘制呢&#xff1f;难道要自己去一笔一笔的进行绘制吗&#xff1f;下面给大家分享几个设计网站&#xff0c;一起来看看吧&…

设计师常用的几个资源网站,你都知道几个呢?

如果你是一名设计师&#xff0c;你的电脑上可能存储了很多的设计网站&#xff0c;但是碎玉一些新手小白来说&#xff0c;刚接触设计的时候应该怎样进行绘制呢&#xff1f;难道要自己去一笔一笔的进行绘制吗&#xff1f;下面给大家分享几个设计网站&#xff0c;一起来看看吧&…

Windows下在线图片处理工具

图片处理工具Photopea Photopea是一个在线版的图片编辑器, 与Photoshop的界面非常相似, 经常被人们误以为是Photoshop的在线网页版, Photopea可以满足绝大多数图片修改需求, 更有趣的是, Photopea支持打开Sketch格式,对经常与Sketch打交道的设计师, 非常有诱惑力! 更多介绍 &…

这些开发好工具,你知道几个?

文章目录 这些超级好的软件&#xff0c;你知道吗&#xff1f;&#xff01;文档类Microsoft OfficeWPS OfficeTyporanotepadsublime Text3或2 工具类截图工具&#xff1a;snipaste虚拟机&#xff1a;Oracle VM VirtualBox笔记类&#xff1a;Microsoft OneNote在线大纲&#xff1…

ubuntu虚拟机磁盘压缩:vmware-toolbox-cmd命令实现

压缩之前&#xff0c;虚拟机占用磁盘空间 虚拟机必须已经安装vmware-tool&#xff0c;运行如下命令&#xff0c;参看磁盘的挂载点 sudo /usr/bin/vmware-toolbox-cmd disk list $sudo /usr/bin/vmware-toolbox-cmd disk list [sudo] password for lkmao: Shrink disk is disab…

C++初阶之一篇文章教会你list(理解和使用)

list&#xff08;理解和使用&#xff09; 什么是list特点和优势基本操作示例用法与其他序列式容器&#xff08;如 std::vector 和 std::deque&#xff09;相比&#xff0c;std::list 显著的区别和优势成员类型 list构造函数1. default (1)2. fill (2)3.range (3)4. copy (4) li…

如何学习大数据

文章目录 每日一句正能量前言一、什么是大数据二、大数据的应用领域三、社会对大数据的人才需求四、大数据的学习路线后记 每日一句正能量 多数人认为&#xff0c;一旦达到某个目标&#xff0c;人们就会感到身心舒畅。但问题是你可能永远达不到目标。把快乐建立在还不曾拥有的事…

【雕爷学编程】Arduino动手做(54)---大按键微动按钮模块3

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

华为手机相册怎么镜像翻转_手机视频剪辑软件怎么制作电子相册_

2020年11月09日 10:25 作者&#xff1a;黄页 编辑&#xff1a;黄页 生活中我们经常会利用手机把身边的美好事物拍摄下来&#xff0c;用以记录生活中的点点滴滴。然而你是否想过将这些照片以动态的形式展示给身边的亲朋好友&#xff0c;让图片“动”起来呢?下面就教你手机视频剪…

华为堡垒机_浪潮无线分析,华为云堡垒机

预期结果步骤2在第6次输入错误用户名/密码时&#xff0c;页面无法正常打开&#xff0c;且被测设备有相关日志记录。测试结果口通过口部分通过口未通过口未测试备注4.2.16敏感数据泄密防护项目&#xff1a;Web攻击防护分项目&#xff1a;敏感数据泄密防护用例编号&#xff1a;版…

华为手机设置页面黑色_华为手机微信猫和老鼠主题皮肤怎么设置 ?超个性主题等你来设置!...

阅读本文前&#xff0c;请您先点击上面的蓝色字体&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到文章了。每天都有分享&#xff0c;完全是免费订阅&#xff0c;请放心关注。 …

华为手机大小尺寸一览_超实用!3招教你用华为手机玩转类型学摄影!

怎么样把照片发朋友圈最吸睛&#xff1f; 每个人都有展示图片的喜好和想法 但往往按照系列发一整组照片&#xff0c;容易收获更多点赞 ▼ 像这样我们常看到的系列图&#xff0c;有一个学名 叫做 “摄影类型学” 名字听起来有没有觉得很高级 但是操作起来却并不难 今天我们就来讲…

学以致用:python面向对象和PyEcharts的完美混合技

文章目录 学习目标数据案例分析数据内容需求分析参考代码data_define.pyfile_define.pymain.py 学习目标 使用面向对象思想完成数据读取和处理基于面向对象思想重新认知第三方库使用(PyEcharts) 数据案例分析 数据内容 1月份数据是普通文本&#xff0c;使用逗号分割数据记录&…

【力扣每日一题】2023.8.12 合并K个升序链表

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个链表数组&#xff0c;数组里的链表都是升序的&#xff0c;让我们合并这些链表&#xff0c;要求合并之后还是升序的。 最简…

【华为】IS-IS协议及配置

概念 中间系统到中间系统IS-IS(Intermediate System to Intermediate System&#xff09;属于内部网关协议IGP &#xff08;Interior Gateway Protocol)&#xff0c;用于自治系统内部。为了支持大规模的路由网络&#xff0c;IS-IS在自治系统内采用骨干区域与非骨干区域两级的分…