python爬虫抓取网易云音乐歌词

python爬虫库的选择

如果你已经了解一些python的基础,那不妨来搞点事情做,比如说做个爬虫,python的爬虫库相当的多,我建议初学者从requests库学起就好,为什么这么说,因为这个库对新手来说特别的友好,Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。

安装requests库

要安装 Requests,只要在你的终端中运行这个简单命令即可:pip install requests,前提是你已经安装好pip了。

发送请求

一开始要导入 Requests 模块:

import requests

然后,尝试获取某个网页:

r = requests.get('https://www.baidu.com')

我们可以从r这个对象中获取所有我们想要的信息,但这也仅是 Requests 的冰山一角,requests的中文文档也很全,建议读一下,你会感觉这个库是真的好用,让我们来实战操作一下,可以让你掌握的知识有用武之地。

抓取网易云音乐的歌词

打开网易云随便点开一首歌,找到它的链接,比如:

网页地址栏那里就是当前音乐的地址,点击F12进入开发者模式,找到实际的歌词网址,红色箭头指向的才是它实际的网址:

python爬虫代码

下面这段代码是params,你可以直接复制到下面的代码中

fz7s/Zfb0YZFub+HjxWhGTCjvUmBeXpJB6pSTFhn/ffM0DNClA5LMv1JhWC8pi4WrAICWGMQlcVcV0zrsPaJZo8P4fq7mhieN43eP9iluDrDrCmFSwvCju7uYsPOn/qU','encSecKey':'33604d40f5300f64c2acc4f620fcb31f82c1dd5d04ef019f158c46f17b5c0b32ef129df6549cba55a71dec47bbb407120e59850a9c3380c98a06b6d087a56c169873ec930a55212314e9c91b56b4dedf6709e3ef7e7608055aa8511a6afbc31514f5fe353bbc3900e7a735f4d61263e4051a6c96afc0725187b21e6a7a38d5ce

下面这段代码是headers的代码,我的是谷歌浏览器

Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36

正式代码如下:

#首先导入用到的库import requestsimport reimport jsondef download_music(): #找入口链接,抓数据 lrc_url = 'http://music.163.com/weapi/song/lyric?csrf_token=' #这是需要传递的form data 和 headers 参数 data = {'params': params} headers = {'User-Agent': headers} #构造requests请求,传入它需要的参数 html = requests.post(lrc_url, data=data, headers=headers) #获取歌词,可以得到歌词字符串 json_obj = html.text #用json.loads方法把str转换成dict json_dic = json.loads(json_obj) #可以看到它是包裹在'lrc'>'lyric'中 lrc = json_dic['lrc']['lyric'] #利用正则把时间段替换掉 pattern = re.compilr(r'[.*]') lrc = re.sub(pattern, '', lrc) print(lrc) #调用download_music函数if __name__ == '__main__': download_music()

代码运行完毕

到这里代码就完成了,你可以自己试着敲一下,里面涉及到的知识点有点多,你可以去网上找一下正则和json方面的知识,了解一下。到这里这篇教程就结束了,下篇文章会给大家带来一样精彩的内容,喜欢的可以点个关注!!!

本文来自企鹅号 - python大神媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

微信也被监控:HackingTeam语音监控代码分析

在HackingTeam泄漏的文件,我们发现了有针对主流聊天软件中的语音进行监控的代码,其中包括国内常用的微信。下面就以微信为例,来分析一下HackingTea...

3118
来自专栏Zephery

谈谈个人网站的建立(四)—— 日志系统的建立

谈谈个人网站的建立(四)—— 日志系统的建立 欢迎访问我的网站http://www.wenzhihuai.com/ 。感谢,如果可以,希望能在GitHub上给个...

3814
来自专栏前端大白专栏

基于mpvue开发微信小程序(项目已开源)

2896
来自专栏来自地球男人的部落格

python中scrapy点击按钮

最初遇到的问题的是在用scrapy爬取微博时需要按照指定关键字来爬取特定微博,主要还是解决需要输入关键字然后点击搜索按钮的问题。于是: 首先 找了scrapy的...

4277
来自专栏mathor

软件破解逆向工程实战(一)

本系列教程无需任何基础,直接学习即可,对于没有c/c++基础的同学来说也没有什么坎,多看,多做就能掌握,同时说一下,我们的QQ群:689696631,因为本系列...

2212
来自专栏光变

1.1 ASM-简介-目的

上面所述的技术可以应用于任何编程语言,只不过在实现上的难易程度取决于编程语言。 对于Java在这种情况下,可以在源码或者字节码中应用。 如果在字节码中应用,显而...

1002
来自专栏xiaoheike

es suggest did you mean资料

term suggester 根据提供的文档提供搜索关键词的建议,也就是关键词自动纠错。该链接介绍如何使用 term suggester 语法。term sug...

2553
来自专栏前端大白专栏

基于mpvue开发微信小程序(项目已开源)

花了两周时间,我的微信小程序终于开发完了(平时上班,基本上都是业余时间开发的). 下面来介绍一下项目的功能以及结构. 用到的技术栈 vue2+weui+es6;...

5599
来自专栏程序员的知识天地

JavaScript设计模式与实践--适配器模式

适配器模式主要用来解决两个已有接口之间不匹配的问题,它不考虑这些接口是怎样实现的,也不考虑它们将来可能会如何演化。适配器模式不需要改变已有的接口,就能够使它们协...

2151
来自专栏前端杂货铺

deno深入揭秘及未来展望

node.js之父Ryan Dahl在一个月前发起了名为deno的项目,项目的初衷是打造一个基于v8引擎的安全的TypeScript运行时,同时实现HTML5...

2001

扫码关注云+社区

领取腾讯云代金券