« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
|
|
[PYTHON]下载日本新闻的脚本 |
冥思者 发表于 2006/5/24 9:45:24 |
最近为了练习日语听力,经常去news24.jp听在线视听新闻,为了以后能反复的听,于是写了个脚本将新闻的视频和台词下载了下来。前提:安装python和flashget1:登陆该网站将各段新闻的链接url拷贝下来,保存在文本文件里面,每行一个url,例如 http://www1.ntv.co.jp/news/wmtram/news.cgi?movie=060523007.cgi.300k.58850.html2:下载的脚本命令行参数是第一步保存url的文本文件的名字import os, rehtml_prev = 'http://www.ntv.co.jp/news/html/%s.html'wmv_prev = 'mms://wmt-od.stream.ne.jp/ntv/news/%s.wmv'fg = r'call "C:\Program Files\FlashGet\flashget.exe"'target = r'D:\download\japanese\news\%s're_news = re.compile(r'.*movie=(\d+)\.cgi\.(\d+k)\.(\d+)\.html', re.I)def download(downloadfile): lines = open(downloadfile, 'r').readlines() files = [] for line in lines: m = re_news.match(line) if m: files.append([m.group(1) + '_' + m.group(2), m.group(3)]) for wmv,html in files: os.system(fg + ' ' + wmv_prev % wmv + ' ' + target % wmv[:6]) os.system(fg + ' ' + html_prev % html + ' ' + target % wmv[:6])if __name__ == '__main__': import sys if len(sys.argv) < 2: print 'Usage: ', __file__, '<download file>' sys.exit(0) download(sys.argv[1])3:下载完成了之后,因为wmv文件和其对应的html台词文件名字不一致,所以再处理一下,你可以简单的将html台词文件和其wmv文件改得一致,但是我更喜欢将html台词文件里面的台词取出来另存为文本文件。命令行同上,仍然是刚才那个保存url的文本文件import rehtml_prev = '%s/%s.html're_html = re.compile('.*<span class="shuyo_1">(.*?)</span>.*<br>(.*)<br>.*<br>.*<span class="shuyo_2">(.*?)</span>', re.I | re.S)re_news = re.compile(r'.*movie=(\d+)\.cgi\.(\d+k)\.(\d+)\.html', re.I)def processfile(downloadfile): lines = open(downloadfile, 'r').readlines() for line in lines: m = re_news.match(line) if m: process(m.group(3), m.group(1) + '_' + m.group(2))def process(html, wmv): f = open(html_prev % (wmv[0:6], html), 'r') content = f.read() f.close() m = re_html.match(content) if m: open(wmv[:6] + '/' + wmv + '.txt', 'w').write(m.group(1).strip() + '\n' + m.group(2).strip() + '\n\n' + m.group(3).strip())if __name__ == '__main__': import sys if len(sys.argv) < 2: print 'Usage: ', __file__, '<download file>' sys.exit(0) processfile(sys.argv[1])4:到这一步没啥说的了,开始视听吧。 | |
|
|
|
统计 |
blog名称:长夜慢慢兮,心越来越远! 日志总数:13 评论数量:48 留言数量:1 访问次数:154278 建立时间:2006年3月3日 | |