xiami music,xiami,#!/usr/bin/e


#!/usr/bin/env python#coding=utf-8from __future__ import print_function #python3 就不要这行了import re,urllib2import threadingimport datetimeurl=(r'http://www.xiami.com/music/index/type/all/page/')regex=re.compile((r'\\s+</span><span class="name"><a.*?="(.*?)" title="(.*?)".*? title="(.*?)".*?').decode('utf8'))href=r'http://www.xiami.com'line=re.compile(r'\\s+<li.*?(\\d+)<span>.*')z=0def down0(music,url,name,n):    global z    con=urllib2.urlopen(url)    for i in con:           m=line.match(i)        if m:            if int(m.group(1))>n:                if mutex.acquire():                    z+=1                    mutex.release()                print(music,url,name,m.group(1))            return def down1(num,n):    music_url=url+str(num)    print(music_url)    con=urllib2.urlopen(music_url)    for i in con:        m=regex.match(i)        if m:            music_url1,music,name=m.group(1,2,3)            music_url1=href+music_url1            #print(music,music_url1,name)            down0(music,music_url1,name,n)if __name__=="__main__":                    start=datetime.datetime.now()                   threads=[]    n=2    try:        mutex=threading.Lock()        for i in range(1,n+1):            th=threading.Thread(target=down1,args=(i,1000))            threads.append(th)        for i in range(0,n):            threads[i].start()        for i in range(0,n):            threads[i].join()        print(z)        end=datetime.datetime.now()        print(end-start)    except Exception as err:        print (err)#该片段来自于http://byrx.net

评论关闭