加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

音悦台 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】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读