python爬虫——增量式爬虫——queue

本文介绍了Python标准库中的线程安全队列Queue,特别强调了其在多线程环境中的FIFO(先进先出)特性,以及如何应用于增量式爬虫。通过设置maxsize控制队列大小,当达到上限时,插入操作会被阻塞。在增量爬虫场景中,FIFO队列可以帮助我们避免重复爬取已经抓取过的URL。
摘要由CSDN通过智能技术生成

python队列Queue

Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个使用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递。

基本FIFO队列

class Queue.Queue(maxsize=0)。FIFO即first in first out,先进先出。queue提供了一个基本的FIFO容器,使用方法很简单,maxsize是个整数,指明了队列中能存放的数据个数的上限。一旦达到上限,插入会导致阻塞,直到队列中的数据被消费掉。如果maxsize小于或者等于0,队列大小没有限制。它是进行广度遍历。

import queue
test = queue.Queue()
test.put("123")
print(test.get())
test.get()

然后python会一直运行。

LIFO队列

LIFO即Last in First Out,后进先出。与栈的类似,使用同FIFO用法类似。

如果要实现增量式爬虫,要使用FIFO队列

以爬百度贴吧为例:

import requests
import lxml.html
from queue import Queue


class TiebaSpider(object):
    """
    实现下载某个贴吧指定页码前的内容,存储下载内容
    """

    def __init__(self, name, pages):
        """
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值