from urllib import request
import gevent
import time
# 需要给gevent打上monkey补丁,否则gevent无法识别urllib的IO操作,那么gevent最终将会变成同步执行。
from gevent import monkey
monkey.patch_all()
def fun(url,name):
print('GET:%s'%url)
data=request.urlopen(url).read()
# file_name=name
f=open(name,'wb').write(data)
# f.write()
print('%d bytes from %s'%(len(data),url))
urls = ['https://www.python.org/',
# 'https://www.yahoo.com/',
'https://github.com/' ]
# start_time1=time.time()
# for url in urls:
# fun(url)
# stop_time1=time.time()
# print('time_cost=%d'%(stop_time1-start_time1))
start_time=time.time()
gevent.joinall([
gevent.spawn(fun,'https://www.python.org/','python.html'),
gevent.spawn(fun,'https://github.com/','github.html'),
])
stop_time=time.time()
print('time_cost=%d'%(stop_time-start_time))
gevent方法:
gevent.joinall() gevent.spawn()
urllib方法:
from urllib import request
f=request.urlopen('url')
data=f.read()