Python爬取网易云音乐视频


一、抓包分析

分析网页,以《大鱼》为例:

定位分析一波,我在网页中发现了这个:

直觉告诉我,有戏(其实视频链接确实在这儿),然后抓个包:


二、提取信息

接下来使用一个谷歌插件 Get Postman,特别好用

复制一下curl:

然后打开postman,点击import按钮,选择Past Raw Text,把刚复制的cURl粘贴进去:

点击send,可以看到返回了我们想要的东西:

接下来会出现一个面板,选择Python Requests,直接一键生成python请求代码,直接复制使用,真香!!!

接下来使用xpath选择器处理一下,打印我们想要的信息看看

下面这是返回链接信息:


三、处理信息

后面有一部分是不需要的,截掉它,仔细观察,我们可以看到,里面包含了两个链接,对应两种不同的画质(后面测试过),把两个链接分开

urls = urls.split("&autoPlay")[0].split("hurl=")[1].split("murl=")

由于编码原因,链接里面有些字符需要转化一下,对应关系如下:

转化前转化后
%3A:
%2F/
%3F?
%3D=
%26&

这里简单粗暴点,直接替换掉:

def url_parse(url):
    s1 = ["%3A","%2F","%3F","%3D","%26"]
    s2 = [":","/","?","=","&"]
    for i in range(len(s1)):
        url = re.sub(s1[i],s2[i],url)
    return url

看一下处理结果:


四、下载视频

这里使用我之前爬抖音视频时写的一个python下载程序mydload

pip install mydload

使用方法

from mydload import downloadfile #引入模块
downloadfile(url,filename) #传入链接和文件名

现在已经拿到了视频链接,接下来从网页中提取视频名

vname = data.xpath('//*[@id="flag_title1"]/text()')[0]
周深_郭沁《大鱼》_柔情天籁周深开嗓惊艳全场

ok ,一切准备就绪,接下来开干。对了,忘了说每个视频都有个视频id

https://music.163.com/#/video?id=B775FC32AADDB43B908DB062AFB0752D

我们可以传入不同的id ,下载不同的视频,在复制链接的时候我们都是全体复制,而要单独复制id的话显得麻烦,为了方便,我们可以直接传入全链接,再自定义个函数提取链接中的视频id:

def get_id(url):
    id = url.split("=")[-1]
    return id

嗯,搞定,很简单。

接下来放大招:

def main():
    url = input("请输入视频链接:")
    id = get_id(url)
    vname = get_data(id)[1] + ".mp4"
    furl = get_data(id)[0][0
    vurl = url_parse(furl)
    downloadfile(vurl,vname)

运行一波试试:

播放正常:


五、源码分享

搞定,收工!
源码放在github上,有需要请自取,源码

https://file.ztongyang.cn/yang/picttures/QQqr.jpg https://file.ztongyang.cn/yang/picttures/wechatqr.png https://metu.ztongyang.cn/a/avatar.jpg avatar

南玖

生命不息,折腾不止

  网站咨询
  •   当前在线1人
  •   加载耗时32 ms
  •   文章数目40篇
  •   分类总数10个
  •   评论总数46条
  •   站点字数3.84 W
  •   运行时间12天
  访问信息
  •   
  •   2020-08-06 06:23:50 Thu
  •   ?浏览器
  •   操作系统
  热门文章