python爬取指定歌曲的MV
目标网站
音悦Tai:http://www.yinyuetai.com/
爬取结果
根据指定的歌曲爬取十个相关的mv,存在列表里,十个mv对应十个字典,键为mv的名称,值为mv的数据。
当然也可以根据自己实际爬取需求修改存储的数据结构。
最后爬取下来的数据包括了mv文件的播放链接,可以看到后缀是.flv或.mp4,可以根据这些链接去下载到相应的mv。
数据接口
- 根据videoId获取mv数据:
http://ext.yinyuetai.com/main/get-h-mv-info?json=true&videoId=2275893 - 根据关键字获取相关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相关推荐
- python3爬虫进阶之自动登录网易云音乐并爬取指定歌曲评论
** python3爬虫进阶之自动登录网易云音乐并爬取指定歌曲评论 ** 一.访问网易云首页,找到所需元素的位置 用浏览器打开网易云首页https://music.163.com/之后,发现我们要找的 ...
- python 爬取歌曲程序_如何让程序像人一样的去批量下载歌曲?Python爬取付费歌曲...
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 今天来教大家一个自动化爬虫的工具 selenium selenium Se ...
- python爬取指定关键字图片
''' 爬取指定关键字图片 ''' import re# 正则表达式,解析网页 import requests# 请求网页 import traceback import osdef dowmload ...
- Python 爬取周杰伦歌曲信息,爬取豆瓣top250的电影,并保存至excel中
使用requests.BeautifulSoup模块,在网上爬取信息.有的网页可以直接爬取到,有些则需要分步加载,这时就需要使用network进行分析找到信息对应的请求. 有的会反爬虫,则需要添加he ...
- python爬取指定分辨率模特壁纸
文章目录 一.导入的库 二.页面分析 三.完整代码 四.结果展示 五.Blogger's speech 近些天,别人都是成双成对,单身的我该咋办? 好久没有更新壁纸库,这些天就填充一点壁纸好了! 针对 ...
- python爬取指定时间,指定关键词的微博文本
根据关键词爬取微博文本 首先导入所使用的库 from selenium import webdriver from lxml import html from urllib import parse ...
- 用python爬取指定数据流量是几点_使用python进行微信宜出行人流量数据爬取
写在前面 由于宜出行的登录策略更新,导致无法使用qq登录直接爬取人流量的问题,近期进行了代码升级,已经解决了该问题,并且能顺利爬取数据,示例如下.目前暂不提供源代码,如有需要宜出行数据,可联系:917 ...
- 用Python爬取陈奕迅歌曲10万条评论的新发现
一.抓数据 要想做成词云图表,首先得有数据才行.于是需要一点点的爬虫技巧. 基本思路为:抓包分析.加密信息处理.抓取热门评论信息 1.抓包分析 我们首先用浏览器打开网易云音乐的网页版,进入陈奕迅< ...
- python的歌曲评论数据分析_用Python爬取陈奕迅歌曲10万条评论的新发现
一.抓数据 要想做成词云图表,首先得有数据才行.于是需要一点点的爬虫技巧. 基本思路为:抓包分析.加密信息处理.抓取热门评论信息 1.抓包分析 我们首先用浏览器打开网易云音乐的网页版,进入陈奕迅< ...
最新文章
- 举例说明html语言的结构,HTML语言的结构
- python函数调用追踪_Python函数调用追踪实现代码
- CentOS安装jdk和tomcat
- 优酷的多页画在同一窗口打开效果。
- 如何监控impala的数据_impala数据库的函数
- Java+包裹类型_java中的包裹类型
- if 语句 写了return 报错
- 基于PHP构建OAuth 2.0 服务端 认证平台
- 给linux用户的11个高级MySQL数据库面试问题和答案
- 六、Shell echo命令
- 电脑如何压缩图片大小kb?如何在线压缩图片?
- 如何求解单边z变换_用单边Z变换解差分方程.ppt
- mysql 时间 本周 本月_MySQL日期查询:本周、本月、本季、本年
- 如何用计算机设计动画,用电脑制作3D动画的详细过程是怎样的?
- win7虚拟机_win10使用hyperV创建虚拟机
- 解决Chrome插件安装时报错:“Manifest file is missing or unreadable“
- 改造汇文OPAC,使其通过萌校的通用扫码接口登录
- echarts折线图鼠标悬浮竖线_Echarts折线图问题,鼠标悬停的地方不能正确展示数据怎么回事呢?...
- boost::python::detail::destroy_referent相关的测试程序
- linux文件夹改不了权限吗,linux修改文件和文件夹权限及所有者