王心凌再次爆火,为了防止收费,我连夜用Python把她所有的MV离线

《乘风破浪的姐姐3》王心凌一骑绝尘,破收视率,多年后再次全网爆火,某音截止现在差不多3500W粉丝,五月份热门女星排名,吊打其它所有人,不愧是我女神!

但是这个热度,感觉她的歌曲和MV,已经离收费越来越近了,于是我连夜用Python把所有MV 和歌曲离线,今天先给大家分享MV的方法。

女神镇楼!

 

 

话不多说,我们开冲!

步骤分析

一、数据来源分析

1、首先我们确定自己的需求,什么网站,获取什么数据。

以酷我为例,直接打开酷我搜索王心凌,点击MV。

 

 


然后我们通过开发者工具进行抓包分析,分析我们想要的数据来自于哪里。

直接点击第一个,然后右键点击检查,或者直接按F12 打开开发者工具,然后点击network ,点击AII ,然后我们看到的是这样的页面。

 

 


这个时候是没有数据的,所以我们需要刷新一下。

现在数据就出来了

 

 

每个视频都有自己的编号,我们可以在地址栏看到,这个视频的编号是89622

 

 

我们在开发者工具找到对应的目录,在network → AII 里第一个就是。

 

 

或者直接点左上角的搜索工具,或者直接 Ctrl+f 打开搜索框,输入序号进行搜索。

 

 


第一个就是,或者搜索对应的标题也可以找到相关数据。

 

 

然后再这里找到我们需要的 Cookie 、Referer 、url 等等数据。

代码展示

本文代码实现的基本四大步骤

1. 发送请求, 模拟浏览器对于url网址发送请求  <专门定义函数来发送请求>
2. 获取数据, 获取网页源代码
3. 解析数据, 提取我们想要数据内容 <视频信息以及视频标题>
4. 保存数据, 把视频内容保存本地

1、首先导入需要用的模块

import requests
import re

 

requests 是第三方模块,需要手动安装一下。

键盘按住 win+r 输入 cmd 确定,弹出命令提示符窗口,输入 pip install requests 回车安装即可。

不会的可以看我置顶文章,有专门介绍,或者加文章底部直接联系我。

2、发送请求

模拟浏览器对于url网址发送请求 <专门定义函数来发送请求>

headers = {
    'Cookie': '_ga=GA1.2.1259590012.1628168238; Hm_lvt_cdb524f42f0ce19b169a8071123a4797=1655356984; _gid=GA1.2.1126000694.1655356984; Hm_lpvt_cdb524f42f0ce19b169a8071123a4797=1655357023; _gat=1; kw_token=XBR2CWDG9IP',
    'Host': 'www.kuwo.cn',
    'Referer': 'http://www.kuwo.cn/search/list?key=%E9%99%88%E5%A5%95%E8%BF%85',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36',
}
url = 'http://www.kuwo.cn/mvplay/89622'
response = requests.get(url=url, headers=headers)

# Python学习交流群  279199867

 

这些数据的话,都在开发者工具里面获取,还记得前面讲的步骤吗?

Cookie、Host 、Referer 、 User-Agent 这些数据找到后,直接复制下来,Referer是防盗链,没看到的话不用写。

 

 url 在第一个

 

 

对应的标签需要加上引号,把复制下来的内容变成字典格式。

然后通过 response 对网站发送请求

print 打印一下

 

 

<Response [200]>: 请求成功

3、获取数据

html_data = response.text
print(html_data)
# Python学习交流群 279199867

 

打印一下看看获取到的数据

 

 


4、解析数据

.*?匹配任意字符 \n 换行除外

video_url = re.findall('src:"(.*?)"}]', html_data)[0]
video_url = video_url.replace('\\u002F', '/')
video_data = requests.get(url=video_url).content

 

5、保存数据

with open('爱你.mp4', mode='wb') as f:
    f.write(video_data)

 

 

 

就可以开始愉快的欣赏女神了!

这里我只是做了单个获取,多个爬取和多页爬取我专门录了视频,文中可以获取。

posted @ 2022-06-20 14:27  轻松学Python  阅读(221)  评论(0编辑  收藏  举报