音悦台mv批量下载-python

音悦台mv批量下载-python,第1张

概述音悦台mv批量下载-python

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

#enCoding: UTF-8"""音悦台mv批量下载2015-02-11[email protected]"""import urllib2import urllibimport reimport sysimport osimport timeclass Yinyuetai():	"""	构造函数	@param url mv 列表地址	"""	def __init__(self,url):		self.i = 1		self.url = url		self.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'		}		self.timeout = 30		self.__init()	#end def		def __init(self,page=1):		print u"开始下载:第 %d 页 ..." % page		reurl = self.url + "&page=%d" % page		#print reurl		mvPagelist = self.__getMvPagelist(reurl)		if len(mvPagelist) > 0:			for pList in mvPagelist:				mvList = self.getMvUrl(pList)				self.__download(mvList[0],mvList[1].decode("utf-8"))				self.i += 1			time.sleep(2)			page += 1			self.__init(page)		else:			print u"\n~~~~~~~~~~~~完成!~~~~~~~~~~~~"				#end def		"""	分析列表页	return 返回MV地址和名字列表[0]:视频ID[1]:视频名称	"""	def __getMvPagelist(self,url):		try:			request = urllib2.Request(url,None,self.headers)			response = urllib2.urlopen(request,self.timeout)			responseHTML = response.read()						reg = r"<h3><a\shref=\"http:\/\/v.yinyuetai.com\/vIDeo\/([0-9]+)\".*Title=\"(.*)\".*"			pattern=re.compile(reg)			findList = re.findall(pattern,responseHTML)			return findList		except:			return []		#end def		"""	读取视频列表	@param mvList 页面视频ID和名字列表	return 返回视频地址(第一个地址)(如果有3个地址,则返回最后一个地址(高清))	"""	def getMvUrl(self,mvList):		url = "http://www.yinyuetai.com/insite/get-vIDeo-info?flex=true&vIDeoID=%d" % int(mvList[0])		try:			req = urllib2.Request(url,self.headers)			res = urllib2.urlopen(req,self.timeout)			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],mvList[1]]			else:				return [findList[0],mvList[1]]		except:			print u"	读取视频列表失败!\n"		#end def		"""	下载文件	@param url 视频地址	@param name 视频名称	"""	def __download(self,url,name):		name = name + '.flv'		print u"	下载:[%s]  [%d]" % (name,self.i)		local = self.__createDir()+'/'+name		try:			urllib.urlretrIEve(url,local,self.__schedule)			print u"	下载完成:[%s]\n" % name		except:			print u"	下载失败!\n"		"""	检查文件保存路径是否存在,不存在则创建	return 文件保存路径	"""	def __createDir(self):		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			#end def		"""	回调函数获取进度	@ a 已经下载的数据块	@ b 数据块的大小	@ c 远程文件的大小	"""	def __schedule(self,a,b,c):		per = 100.0 * a * b / c		if per > 100 : per = 100		sys.stdout.write(u"	进度:%.1f%%\r" % per)		sys.stdout.flush()			#end def	#end class		if __name__ == '__main__':	url = 'http://mv.yinyuetai.com/all?pageType=page&sort=weekVIEws&tab=allmv&parenttab=mv'	Yinyuetai(url)

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

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的音悦台mv批量下载-python全部内容,希望文章能够帮你解决音悦台mv批量下载-python所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1199023.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存