python下载百度mp3 top500的脚本

python下载百度mp3 top500的脚本

新手做的,大家给点意见
仅适用于linux

[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/python
#-*- coding: GB2312 -*-
import re
import os

mp3topsonghtml=os.popen("wget 'http://list.mp3.baidu.com/topso/mp3topsong.html#top2' -O /dev/stdout").readlines()
mp3samehtmllist=[]
mp3=[]
for i in mp3topsonghtml:
    b=re.compile('"http://mp3.baidu.com/m?.*\+.*"').search(i)
    if b:
        mp3samehtmllist.append(i[b.start():b.end()][1:-1])
        print i[b.start():b.end()][1:-1]
#end-for-i
#for i in mp3samehtml:
#   print i
print 'totle find %s songs'%len(mp3samehtmllist)

for i in mp3samehtmllist:
    print "wget -O /dev/stdout '%s'"%i
    mp3samesonghtml=os.popen("wget -O /dev/stdout '%s'"%i).readlines()
    mp3url=''
    mp3title=''
    for j in mp3samesonghtml:
        mp3=re.compile("来源网址.*\.mp3").search(j)
        if mp3:
            mp3url=j[mp3.start():mp3.end()][12:]
        if re.compile("歌词").search(j):
            title=re.compile("word=.*&ct").search(j)
            if title:
                mp3title=j[title.start():title.end()][5:-3]
        if mp3url and mp3title:
            print '[%s]%s'%(mp3title,mp3url)
            if os.system("wget -O %s.mp3 '%s'"%(mp3title,mp3url))==0:
                break
#end-for-i

可能用shell会更简单些吧?

另外,

[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/python

写成这样会不会好一点(便于移植到其它系统,比如BSD):

[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/env python

这个好玩,,支持一下.我也喜欢去百度下MP3
可以试试用urllib2这个模块来代替调用系统的wget,这样的话就不依赖wget了
怎么用不成?
哪里不好使了?
有一个多线程下top10的,楼主可以找来参考一下,应该可以搞得更好。


QUOTE:
原帖由 phpbird 于 2006-5-16 13:22 发表
有一个多线程下top10的,楼主可以找来参考一下,应该可以搞得更好。

在哪里?
希望有图形界面哦.
我也觉得用urllib.urlretrieve比用wget好,还有用python写的话就应该写成Linux和Windows都能用。