使用Python下载Voxforge语音文件
使用Python下载Voxforge语音文件
由于做语音识别需要在使用voxforge的语音文件,但是voxforge文件太多,手工下载肯定不行,可以使用批量下载软件进行下载。而出于好奇,我打算用python自己写一个批量下载脚本,最后虽然能用,但速度不行,而且是单线程的,只能一个文件一个文件的下,就当当作练练手,过一阵再研究多线程的下载。
因此,只需要把整个源代码中包含href=”********.tgz”的部分提取出来,然后去掉“href=”””,然后在前面加上上面的主连接就是每个文件的完整连接。
好,不多说了,源码如下,写得很不规范,将就看吧。
import urllib import urllib2 import os import re os.chdir('D:\voxforge speech files\')#改变当前路径 #refiles=open('speech_files_path.txt','w+')#存储所有下载连接 mainpath='http://www.repository.voxforge1.org/downloads/SpeechCorpus/Trunk/Audio/Main/16kHz_16bit/' def gettgz(url): page=urllib.urlopen(url) html=page.read() reg=r'href=.*.tgz' tgzre=re.compile(reg) tgzlist=re.findall(tgzre,html) #找到所有.tgz文件 for i in tgzlist: filename=i.replace('href=','') filename=filename.replace('','') print '正在下载:'+filename #提示正在下载的文件 downfile=i.replace('href=',mainpath) downfile=downfile.replace('','') #得到每个文件的完整连接 req = urllib2.Request(downfile) #下载文件 ur = urllib2.urlopen(req).read() open(filename,'wb').write(ur) #把下载的文件以tgz格式存储在D盘 # refiles.write(downfile+' ') html=gettgz(mainpath) #refiles.close()
运行效果如下:
评论关闭