音悦台 MV 下载 python 版本

发布时间:2020-03-05 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了音悦台 MV 下载 python 版本脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。

脚本之家小编现在分享给大家,也给大家做个参考。

#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"<h3\sclass=\"fl\sf18\">(.+)<\/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()
	

以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

总结

以上是脚本之家为你收集整理的音悦台 MV 下载 python 版本全部内容,希望文章能够帮你解决音悦台 MV 下载 python 版本所遇到的程序开发问题。

其他人正在看

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入脚本之家官方QQ群:1065694478
标签: