访问6个URL,怎么样才能开启两个gevent,当访问结束后,继续访问剩下的4个URL。
下面这段代码,访问两个URL后程序就结束了。
# coding=utf-8
from gevent import monkey; monkey.patch_socket()
import gevent
import requests
import queue
q = queue.Queue()
def get_data(url):
print('GET: %s' %url)
resp = requests.get(url)
data = resp.text
print('%d bytes received from %s.' %(len(data), url))
q.put('http://www.baidu.com')
q.put('http://www.163.com')
q.put('http://www.sougou.com')
q.put('http://www.bing.com')
q.put('http://www.tudou.com')
q.put('http://www.v2ex.com')
gevent_list = []
for i in range(2):
gevent_list.append(
gevent.spawn(get_data, q.get_nowait())
)
gevent.joinall(gevent_list)
自己解决了,应该在
get_data
方法里面从队列中获取下面spawn的时候就不需要传参数了。