多线程爬虫

多线程爬虫

Queue(队列对象) Queue是python中的标准库,可以直接import Queue引用;

队列是线程间最常用的交换数据的形式

python下多线程的思考

对于资源,加锁是个重要的环节。因为python原生的list,dict等,都是not thread safe的。而Queue,是线程安全的,因此在满足使用条件下,建议使用队列

  1. 初始化: class (FIFO 先进先出)
import queue
dataqueue = queue.Queue(maxsize=40)
  1. 包中的常用方法:
  • Queue.qsize() 返回队列的大小

  • Queue.empty() 如果队列为空,返回True,反之False

  • Queue.full() 如果队列满了,返回True,反之False

  • Queue.full 与 maxsize 大小对应

  • Queue.get(block,timeout) 获取队列,timeout等待时间

  • Queue.put(值) 将一个值放入队列中

#maxsize:指定队列中能够存储的最大的数据量
dataqueue = queue.Queue(maxsize=40)

for i in range(0,50):
     if not dataqueue.full():
         dataqueue.put(i)

#判断队列是否为空
isempty = dataqueue.empty()
print(isempty)

 #判断队列是否存满了
sfull = dataqueue.full()
print(isfull)

#查看对列的大小
size = dataqueue.qsize()
print(size)

#FIFO(先进的先出)
print(dataqueue.get())

步骤

  1. 创建一个任务队列:存放的是带爬取的url地址
  2. 创建爬取线程,执行任务的下载
  3. 创建数据队列:存放爬取线程获取的页面源码
  4. 创建解析线程:解析html源码,提取目标数据,数据持久化
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容