xiami music,xiami,#!/usr/bin/e
文章由Byrx.net分享于2019-03-23 08:03:53
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
评论关闭