音悦台 MV 下载 python 版本
发布时间:2020-12-17 17:05:14 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #encoding:utf8import urllib2import urllibimport reimport sysimport osimport timedef Schedule(a,b,c): per = 100.0 * a * b / c if per 100 : pe
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 #encoding:utf8 import urllib2 import urllib import re import sys import os import time def Schedule(a,b,c): per = 100.0 * a * b / c if per > 100 : per = 100 sys.stdout.write(u"------进度:%.1f%%r" % per) sys.stdout.flush() def createDir(): path = sys.path[0] new_path = os.path.join(path,'flv') if not os.path.isdir(new_path): os.mkdir(new_path) return new_path def getList(id): url = "http://www.yinyuetai.com/insite/get-video-info?flex=true&videoId=%d" % id headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/39.0.2171.95 Safari/537.36','Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' } try: req = urllib2.Request(url,None,headers) res = urllib2.urlopen(req) html = res.read() reg = r"http://w*?.yinyuetai.com/uploads/videos/common/.*?(?=&br)" pattern=re.compile(reg) findList = re.findall(pattern,html) if len(findList) >= 3: return findList[2] else: return findList[0] except: print u"读取视频列表失败!" def download(id,name): link = getList(id) if link: name = name + '.flv' print u"下载:[%s]" % name local = createDir()+'/'+name try: urllib.urlretrieve(link,local,Schedule) print u"------下载完成:[%s]n" % name except: print u"下载失败!n" #for url in urlList: #下载全部 #name = url.split('/')[-1].split('?')[0] #name = getFlvName(id)+'-%d.flv' % i #print u"下载:[%s]" % name #local = createDir()+'/'+name #urllib.urlretrieve(url,Schedule) #i += 1 #print u" 下载完成:[%s]" % name #print '' else: print u"没有发现视频!n" def getFlvName(id): headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML,*/*;q=0.8' } timeout = 5 url = 'http://v.yinyuetai.com/video/%d' % id request = urllib2.Request(url,headers) response = urllib2.urlopen(request,timeout) responseHtml = response.read() #print responseHtml pattern=re.compile(r"<h3sclass="flsf18">(.+)</h3>") findList = re.findall(pattern,responseHtml) try: return findList[0].decode('utf8') except: return False def start(): while 1: id = raw_input('ID:>') try: id = int(id) break except: pass name = getFlvName(id) #读取mv名字 if name == False: #读取失败则输入 print u'获取MV名字失败!输入MV名字' name = raw_input(u'name:>') name = name.decode('gbk') #开始下载 print u"开始下载..." download(id,name) start() if __name__ == '__main__': start() 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容