音悦台高清mv下载_音悦台没有了去哪看mv

音悦台高清mv下载_音悦台没有了去哪看mv需要获取的页面:参考了此处,做了修改,代码如下:1#coding:utf-82importurllib23importurllib4importre5importsys6

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

需要获取的页面:

音悦台高清mv下载_音悦台没有了去哪看mv

参考了此处,做了修改,代码如下:

 1 #coding:utf-8  2 import urllib2  3 import urllib  4 import re  5 import sys  6 import os  7 import time  8  9  10 class Yinyuetai():  11  12 #地址初始化  13 def __init__(self, url):  14 self.i = 1  15 self.url = url  16 self.headers = {  17 'User-Agent':'Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36',  18 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'  19  }  20 self.timeout = 30  21 self.__init()  22  23  24 def __init(self, page=1):  25 print u"开始下载:第 %d 页 ..." % page  26 reurl = self.url + "&page=%d" %page  27 page = self.getPage(reurl)  28 mvPageList = self.__getMvPageList(page)  29 if len(mvPageList) > 0:  30 for plist in mvPageList:  31 mvlist = self.getMvURL(plist)  32 self.downLoad(mvlist[0], mvlist[1].decode("utf-8"))  33 self.i += 1  34 time.sleep(2)  35 page += 1  36 self.__init(page)  37 else:  38 print u"\n~~~~~~~~~~~完成!~~~~~~~~~~~~~~"  39  40  41  42 #获取指定页面源码  43 def getPage(self, url):  44 try:  45 request = urllib2.Request(url, None, self.headers)  46 response = urllib2.urlopen(request, None, self.timeout)  47 return response.read()  48 except:  49 return []  50  51 #分析列表页,返回MV地址和名字列表[0]:视频ID[1]:视频名称  52 def __getMvPageList(self, page):  53 reg = r"<h3><a\shref=\"http:\/\/v.yinyuetai.com\/video\/([0-9]+)\".*title=\"(.*)\".*"  54 pattern = re.compile(reg)  55 findList = re.findall(pattern, page)  56 return findList  57 #print findList  58  59  60  61 def getMvURL(self, mvlist):  62 url = "http://www.yinyuetai.com/insite/get-video-info?flex=true&videoId=%d" % int(mvlist[0])  63 html = self.getPage(url)  64  65 reg = r"http://\w*?\.yinyuetai\.com/uploads/videos/common/.*?(?=&br)"  66 pattern=re.compile(reg)  67 findList = re.findall(pattern, html)  68  69 if len(findList) >= 3:  70 return [findList[2], mvlist[1]]  71 else:  72 return [findList[0], mvlist[1]]  73  74  75 #end def  76  77 #下载文件  78 def downLoad(self, url, name):  79 name = name + '.flv'  80 print u"下载:[%s] [%d]" % (name, self.i)  81 local = self.makeDirs() + '/' + name  82 try:  83  urllib.urlretrieve(url, local, self.schedule)  84 print u"下载完成:[%s]\n" % name  85 except:  86 print u"下载失败!\n"  87  88 def makeDirs(self):  89 path = sys.path[0]  90 newPath = os.path.join(path, 'flv')  91 if not os.path.isdir(newPath):  92  os.mkdir(newPath)  93 return newPath  94  95 """  96  回调函数获取进度  97  @ a 已经下载的数据块  98  @ b 数据块的大小  99  @ c 远程文件的大小 100 """ 101 def schedule(self, a, b, c): 102 per = 100.0 *a * b / c 103 if per > 100 : per = 100 104 sys.stdout.write(u" 进度:%.1f%%\r" % per) 105  sys.stdout.flush() 106 107 108 109 110 if __name__ == '__main__': 111 url = 'http://mv.yinyuetai.com/all?pageType=page&sort=weekViews&tab=allmv&parenttab=mv' 112 Yinyuetai(url)

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168367.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • [驱动注册]platform_driver_register()与platform_device_register()「建议收藏」

    [驱动注册]platform_driver_register()与platform_device_register()「建议收藏」[驱动注册]platform_driver_register()与platform_device_register()     设备与驱动的两种绑定方式:在设备注册时进行绑定及在驱动注册时进行绑定。以一个USB设备为例,有两种情形:(1)先插上USB设备并挂到总线中,然后在安装USB驱动程序过程中从总线上遍历各个设备,看驱动程序是否与其相匹配,如果匹配就将两者邦定。这就是p

  • .net cms开源_最大的开源代码网站

    .net cms开源_最大的开源代码网站地址:http://sourceforge.net/projects/cmsaspnet/?source=directory

  • [Java web]– spring3(2)「建议收藏」

    [Java web]– spring3(2)「建议收藏」1.复杂对象的创建:不能直接new的对象,需要一个相对复杂的创建过程。  :FactoryBean===============================================================================================2.复杂对象的创建流程:  2.1 定义类:implements FactoryBean&l…

  • http和tcp的区别和联系_udp协议和tcp协议的区别

    http和tcp的区别和联系_udp协议和tcp协议的区别一、基本概念1、TCP连接手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;…

  • _bz2 缺少

    _bz2 缺少报错信息from_bz2importBZ2Compressor,BZ2DecompressorModuleNotFoundError:Nomodulenamed’_bz2’解决办法1、安装yuminstallbzip2-devel2、找到_bz2.cpython-37m-x86_64-linux-gnu.so文件如果在机器上没有的话,…

  • 策略模式+工厂+字典map解决多重if-else

    策略模式+工厂+字典map解决多重if-else

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号