下面是编程之家 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)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。