import gevent
from gevent import monkey #一定要放最前面,所有代码(包括注释)之前
monkey.patch_all() #设置为异步模式
import requests
from gevent.queue import Queue
work = Queue() #创建队列
list_test = ['http://wwww.1.com', 'http://www.2.com', 'http://www.3.com','http://www.4.com','http://www.5.com','http://www.6.com','http://www.7.com']
for list in list_test:
work.put_nowait(list) #遍历列表里的元素,挨个加入到work队列里
def crawler(): #定义一个函数,方便填加到任务列表
while not work.empty(): #判断队列是否为空,就是队列里的东西取光了没有
url = work.get_nowait() #从队列里取出元素使用
#以下代码为,操作取出来的元素代码
r = requests.get(url)
print(url,r.status_code)
task_list=[] #创建一个任务列表,最终要用gevent.joinall(task_list)
for i in range(3): #创建几个线程,就是你要派几条爬虫出来同时干活
task = gevent.spawn(crawler)
task_list.append(task)
gevent.joinall(task_list) #任务列表里的任务(爬虫)开始工作
要点:
1. from gevent import monkey 最先import
2. 创建队列
3.把需要爬取的网址存入队列
4.创建任务列表
5.gevent.joinall(task_list) 开始工作