把机器分为master和slave
这里建立两个队列:
队列1:任务队列
slave:从队列中获取要访问的url
master:把符合要求的url放到这个队列中去
队列2:数据队列
slave:采集的数据放到队列中
master:读取队列中的数据,筛选没有访问url放到队列中
conn = redis.Redis()
def geturl():
return conn.rpop("queue")
def pushurl(url):
conn.rpush("url",url)
def pushdata(data):
conn.rpush("data",data)
def getdata():
return conn.rpop("data")
def server(init_urls):
s = set(init_urls)
pushurl(init_urls)
while True:
data = getdata()
if data != None:
urls = data['urls']
for url in urls:
if url not in s:
pushurl(url)
s.add(url)