---恢复内容开始---
python Queue模块有三种队列及构造函数
1. FIFO队列先进先出,方法如下:
class Queue.Queue(队列长度)
2.LIFO类似于栈,先进后出,方法如下:
class Queue.LifoQueue(队列长度)
3.还有一种是优先级别越低越先出,方法如下:
class Queue.PriorityQueue(队列长度)
其中,队列长度可以省略,省略后长度为数据的长度。
设q=Queue.Queue(),q为队列的存储对象,q有很多方法。
q.qsize() 返回队列大小
q.empty() 是否为空
q.full() 是否为满
q.get([block[,timeout]]) 获取队列,timeout为等待时间
q.get_nowait() 相当于q.get(Flase)
q.put([item[,timeout]) 写入队列,timeout为等待时间
q.put_nowait(item) 相当于q.put(item,False)
q.task_done() 向任务已完成的队列发送一个信号
q.join() 意味着等到队列为空,再执行别的操作
from bs4 import BeautifulSoup import requests import queue # 存放三个网址 urls=["https://www.baidu.com","http://www.163.com","http://www.126.com"] q=queue.Queue() #使用for循环,利用队列的“put”方法,将每个网址依次加入到q队列中。 for url in urls: q.put(url) #当q为空,用到empty()方法,不为空输出"get()"方法获得队列中url元素 while not q.empty(): wb_data=requests.get(q.get()) soup=BeautifulSoup(wb_data.text,\'lxml\') print(soup)