目标网站

音悦Tai:http://www.yinyuetai.com/

爬取结果


根据指定的歌曲爬取十个相关的mv,存在列表里,十个mv对应十个字典,键为mv的名称,值为mv的数据。
当然也可以根据自己实际爬取需求修改存储的数据结构。
最后爬取下来的数据包括了mv文件的播放链接,可以看到后缀是.flv或.mp4,可以根据这些链接去下载到相应的mv。

数据接口

  1. 根据videoId获取mv数据:
    http://ext.yinyuetai.com/main/get-h-mv-info?json=true&videoId=2275893
  2. 根据关键字获取相关mv数据:
    http://soapi.yinyuetai.com/search/video-search?keyword=那英-默&pageIndex=1&pageSize=24&offset=0&orderType=TOTALVIEWS

上述的两个接口返回的是json数据,大家可自行打开链接观察它们的数据结构。
这两个接口都可以F12打开开发者工具,在音悦Tai发送的网络请求中找到,这里就不多加赘述了。

思路及实现

通过上述的两个数据接口,思路就比较清晰了:
1、通过关键字搜索,得到相关mv的videoId的值,把videoId存储在列表中;
2、循环videoId列表取出每一个videoId,再通过各个videoId得到各个mv数据;
3、存储每一个mv数据。
下面贴出代码:

import requests
import json# http://soapi.yinyuetai.com/search/video-search?keyword=那英-默&pageIndex=1&pageSize=24&offset=0&orderType=TOTALVIEWS
# http://ext.yinyuetai.com/main/get-h-mv-info?json=true&videoId=2275893class getMv:def getVideoId(self, keyword):url = 'http://soapi.yinyuetai.com/search/video-search?keyword=%s&pageIndex=1&pageSize=24&offset=0&orderType=TOTALVIEWS'%keywordheaders = {'Host':'soapi.yinyuetai.com','User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'}response = requests.get( url, headers=headers )result = json.loads(response.text)videoData = result['videos']['data'][:10]   # 只取最热门的前十个MVvideoId = []for vd in videoData:videoId.append( vd['id'] )return videoIddef getVideo(self, mvId):url = 'http://ext.yinyuetai.com/main/get-h-mv-info?json=true&videoId=%s'%mvIdheaders = {'Host':'ext.yinyuetai.com','User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'}response = requests.get( url, headers=headers )result = json.loads(response.text)coreVideoInfo = result['videoInfo']['coreVideoInfo']#print( coreVideoInfo )artistNames = coreVideoInfo['artistNames']videoName = coreVideoInfo['videoName']videoUrlModels = coreVideoInfo['videoUrlModels']video = {}  # 存全部信息videoModels = []   # 存MV全部清晰度和地址for v in videoUrlModels:videoType = {}  # 存各个清晰度与地址videoType[v['qualityLevelName']]=v['videoUrl']videoModels.append(videoType)videoInfo = {}videoInfo['video'] = videoModelsvideoInfo['headImage'] = coreVideoInfo['bigHeadImage']video[artistNames+' - '+videoName] = videoInforeturn videodef main(self, keyword):videoId = self.getVideoId( keyword )videoInfo = []for vid in videoId:videoInfo.append( self.getVideo( vid ) )return videoInfoif __name__=='__main__':mv = getMv()
#    print(mv.getVideo('2275893'))
#    print( mv.getVideoId( '那英-默' ) )mvName = '那英-默'print( mv.main( mvName ) )

在实际使用中可根据自身的需求对代码进行修改。

注意:以上内容仅供学习交流使用,请勿用于其它目的。

python爬取指定歌曲的MV相关推荐

  1. python3爬虫进阶之自动登录网易云音乐并爬取指定歌曲评论

    ** python3爬虫进阶之自动登录网易云音乐并爬取指定歌曲评论 ** 一.访问网易云首页,找到所需元素的位置 用浏览器打开网易云首页https://music.163.com/之后,发现我们要找的 ...

  2. python 爬取歌曲程序_如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 今天来教大家一个自动化爬虫的工具 selenium selenium Se ...

  3. python爬取指定关键字图片

    ''' 爬取指定关键字图片 ''' import re# 正则表达式,解析网页 import requests# 请求网页 import traceback import osdef dowmload ...

  4. Python 爬取周杰伦歌曲信息,爬取豆瓣top250的电影,并保存至excel中

    使用requests.BeautifulSoup模块,在网上爬取信息.有的网页可以直接爬取到,有些则需要分步加载,这时就需要使用network进行分析找到信息对应的请求. 有的会反爬虫,则需要添加he ...

  5. python爬取指定分辨率模特壁纸

    文章目录 一.导入的库 二.页面分析 三.完整代码 四.结果展示 五.Blogger's speech 近些天,别人都是成双成对,单身的我该咋办? 好久没有更新壁纸库,这些天就填充一点壁纸好了! 针对 ...

  6. python爬取指定时间,指定关键词的微博文本

    根据关键词爬取微博文本 首先导入所使用的库 from selenium import webdriver from lxml import html from urllib import parse ...

  7. 用python爬取指定数据流量是几点_使用python进行微信宜出行人流量数据爬取

    写在前面 由于宜出行的登录策略更新,导致无法使用qq登录直接爬取人流量的问题,近期进行了代码升级,已经解决了该问题,并且能顺利爬取数据,示例如下.目前暂不提供源代码,如有需要宜出行数据,可联系:917 ...

  8. 用Python爬取陈奕迅歌曲10万条评论的新发现

    一.抓数据 要想做成词云图表,首先得有数据才行.于是需要一点点的爬虫技巧. 基本思路为:抓包分析.加密信息处理.抓取热门评论信息 1.抓包分析 我们首先用浏览器打开网易云音乐的网页版,进入陈奕迅< ...

  9. python的歌曲评论数据分析_用Python爬取陈奕迅歌曲10万条评论的新发现

    一.抓数据 要想做成词云图表,首先得有数据才行.于是需要一点点的爬虫技巧. 基本思路为:抓包分析.加密信息处理.抓取热门评论信息 1.抓包分析 我们首先用浏览器打开网易云音乐的网页版,进入陈奕迅< ...

最新文章

  1. 举例说明html语言的结构,HTML语言的结构
  2. python函数调用追踪_Python函数调用追踪实现代码
  3. CentOS安装jdk和tomcat
  4. 优酷的多页画在同一窗口打开效果。
  5. 如何监控impala的数据_impala数据库的函数
  6. Java+包裹类型_java中的包裹类型
  7. if 语句 写了return 报错
  8. 基于PHP构建OAuth 2.0 服务端 认证平台
  9. 给linux用户的11个高级MySQL数据库面试问题和答案
  10. 六、Shell echo命令
  11. 电脑如何压缩图片大小kb?如何在线压缩图片?
  12. 如何求解单边z变换_用单边Z变换解差分方程.ppt
  13. mysql 时间 本周 本月_MySQL日期查询:本周、本月、本季、本年
  14. 如何用计算机设计动画,用电脑制作3D动画的详细过程是怎样的?
  15. win7虚拟机_win10使用hyperV创建虚拟机
  16. 解决Chrome插件安装时报错:“Manifest file is missing or unreadable“
  17. 改造汇文OPAC,使其通过萌校的通用扫码接口登录
  18. echarts折线图鼠标悬浮竖线_Echarts折线图问题,鼠标悬停的地方不能正确展示数据怎么回事呢?...
  19. boost::python::detail::destroy_referent相关的测试程序
  20. linux文件夹改不了权限吗,linux修改文件和文件夹权限及所有者

热门文章

  1. java设计课程数学生数_JAVA课程设计小学数学算数测试软件.pdf
  2. 惠普电脑怎么录屏?图文教学,3种简单易懂的录屏方法
  3. 李宁网易体育-网易网站
  4. Java框架面试题总结
  5. WEB应用程序原理(概述)
  6. GPUManager
  7. iOS app 更改名字
  8. getattr() 函数用法
  9. 西子smart系统服务器,西子优迈SMART井道自学习方法.docx
  10. webstorm 激活