代码二:

#!/usr/bin/python
#-*-coding:utf-8-*-
#encoding=utf-8
#Filename:robot.py

importthreading,Queue,sys,urllib2,re
#
#变量设置
#
THREAD_LIMIT=3#设置线程数
jobs=Queue.Queue(5)#设置队列长度
singlelock=threading.Lock()#设置一个线程锁,避免重复调用

urls=['http://games.sina.com.cn/w/n/2013-04-28/1634703505.shtml','http://games.sina.com.cn/w/n/2013-04-28/1246703487.shtml','http://games.sina.com.cn/w/n/2013-04-28/1028703471.shtml','http://games.sina.com.cn/w/n/2013-04-27/1015703426.shtml','http://games.sina.com.cn/w/n/2013-04-26/1554703373.shtml','http://games.sina.com.cn/w/n/2013-04-26/1512703346.shtml','http://games.sina.com.cn/w/n/2013-04-26/1453703334.shtml','http://games.sina.com.cn/w/n/2013-04-26/1451703333.shtml','http://games.sina.com.cn/w/n/2013-04-26/1445703329.shtml','http://games.sina.com.cn/w/n/2013-04-26/1434703322.shtml','http://games.sina.com.cn/w/n/2013-04-26/1433703321.shtml','http://games.sina.com.cn/w/n/2013-04-26/1433703320.shtml','http://games.sina.com.cn/w/n/2013-04-26/1429703318.shtml','http://games.sina.com.cn/w/n/2013-04-26/1429703317.shtml','http://games.sina.com.cn/w/n/2013-04-26/1409703297.shtml','http://games.sina.com.cn/w/n/2013-04-26/1406703296.shtml','http://games.sina.com.cn/w/n/2013-04-26/1402703292.shtml','http://games.sina.com.cn/w/n/2013-04-26/1353703286.shtml','http://games.sina.com.cn/w/n/2013-04-26/1348703284.shtml','http://games.sina.com.cn/w/n/2013-04-26/1327703275.shtml','http://games.sina.com.cn/w/n/2013-04-26/1239703265.shtml','http://games.sina.com.cn/w/n/2013-04-26/1238703264.shtml','http://games.sina.com.cn/w/n/2013-04-26/1231703262.shtml','http://games.sina.com.cn/w/n/2013-04-26/1229703261.shtml','http://games.sina.com.cn/w/n/2013-04-26/1228703260.shtml','http://games.sina.com.cn/w/n/2013-04-26/1223703259.shtml','http://games.sina.com.cn/w/n/2013-04-26/1218703258.shtml','http://games.sina.com.cn/w/n/2013-04-26/1202703254.shtml','http://games.sina.com.cn/w/n/2013-04-26/1159703251.shtml','http://games.sina.com.cn/w/n/2013-04-26/1139703233.shtml']

defworkerbee(inputlist):
forxinxrange(THREAD_LIMIT):
print'Thead{0}started.'.format(x)
t=spider()
t.start()
foriininputlist:
try:
jobs.put(i,block=True,timeout=5)
except:
singlelock.acquire()
print"Thequeueisfull!"
singlelock.release()

#Waitforthethreadstofinish
singlelock.acquire()#Acquirethelocksowecanprint
print"Waitingforthreadstofinish."
singlelock.release()#Releasethelock
jobs.join()#Thiscommandwaitsforallthreadstofinish.
#whilenotjobs.empty():
#printjobs.get()

defgetTitle(url,time=10):
response=urllib2.urlopen(url,timeout=time)
html=response.read()
response.close()
reg=r'<title>(.*?)</title>'
title=re.compile(reg).findall(html)
title=title[0].decode('gb2312','replace').encode('utf-8')
returntitle

classspider(threading.Thread):
defrun(self):
while1:
try:
job=jobs.get(True,1)
singlelock.acquire()
title=getTitle(job)
print'This{0}is{1}'.format(job,title)
singlelock.release()
jobs.task_done()
except:
break;

if__name__=='__main__':
workerbee(urls)

热门推荐

1 期末寄语简短祝福语高中
2 婚礼西装祝福语简短男士
3 买房的祝福语高级简短
4 开工祝福语老师评语简短
5 养生祝福语女生短句简短
6 直播祝福语老师文案简短
7 周日徒步祝福语大全简短
8 寒露祝福语毕业寄语简短
9 回国了祝福语简短英语
10 孩子懂事生日祝福语简短
11 周末祝福语简短老师的话
12 护士辞职送行祝福语简短
13 老爸吃饺子祝福语简短
14 同学有弟弟祝福语简短
15 朋友隔离结束祝福语简短
16 除夕的拜年祝福语简短
17 祝贺学子宴祝福语简短
18 周末新人祝福语短句简短