python3爬蟲中引用Queue的實例講解
我們?nèi)ヒ粋€受歡迎的地方買東西,難免會需要排隊等待。如果有多個窗口的話,就會有不同隊列的產(chǎn)生,當(dāng)然每個隊伍的人數(shù)也會出現(xiàn)參差不齊的現(xiàn)象。我們今天所要說的Queue就可以理解成生活中的排隊現(xiàn)象。那么結(jié)合我們所要用的爬蟲知識,應(yīng)該怎么在Queue中應(yīng)用呢?接下來就開始今天的內(nèi)容學(xué)習(xí):
隊列這種東西大家應(yīng)該都知道,就是一個先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),而Python的標(biāo)準(zhǔn)庫中提供了一個線程安全的隊列,也就是說該模塊是適用于多線程編程的先進(jìn)先出(first-in,first-out,F(xiàn)IFO)數(shù)據(jù)結(jié)構(gòu),可以用來在生產(chǎn)者消費(fèi)者線程之間安全地傳遞消息或其他數(shù)據(jù)。它會為調(diào)用者處理鎖定,使用多個線程可以安全地處理同一個 Queue 實例。Queue 的大?。ㄆ渲邪脑貍€數(shù))可能要受限,以限制內(nèi)存使用或處理。
在Python 3中要引入Queue和Python 2中引入Queue是不同,引入方式如下:
#python 2 import Queue # python 3 from queue import Queue
因為是線程安全的,很自然就可以利用Queue來實現(xiàn)一個多線程爬蟲咯,而Queue的一些常見操作如下:
# 實例化一個隊列,可以在指定隊列大小 q = Queue.Queue() q_50 = Queue.Queue(50) # 指定一個長度為50的隊列 # 入隊一個數(shù)據(jù)data q.put(data) # 出隊并賦值給item item = q.get() # 判斷隊列是否為空,是否滿 if q.empty(): print('隊列為空') if q.full(): print('隊列滿')
另外,除了普通隊列,標(biāo)準(zhǔn)庫中還有優(yōu)先隊列和后進(jìn)先出隊列這兩個隊列,分別為LifoQueue和PriorityQueue,其引用方式與Queue類似。
到此這篇關(guān)于python3爬蟲中引用Queue的實例講解的文章就介紹到這了,更多相關(guān)python3爬蟲中如何引用Queue案例內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3 循環(huán)語句(for、while、break、range等)
這篇文章主要介紹了Python3 循環(huán)語句(for、while、break、range等),大家把下面的文章看完就基本上就可以了解了python的循環(huán)實現(xiàn)方式了2017-11-11Python實現(xiàn)查找二叉搜索樹第k大的節(jié)點(diǎn)功能示例
這篇文章主要介紹了Python實現(xiàn)查找二叉搜索樹第k大的節(jié)點(diǎn)功能,結(jié)合實例形式分析了Python二叉搜索樹的定義、查找、遍歷等相關(guān)操作技巧,需要的朋友可以參考下2019-01-01python爬蟲MeterSphere平臺執(zhí)行報告使用進(jìn)階
這篇文章主要為大家介紹了python爬蟲MeterSphere平臺執(zhí)行報告使用進(jìn)階示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Python實現(xiàn)身份證前六位地區(qū)碼對照表文件
這篇文章主要為大家詳細(xì)介紹了如何利用Python實現(xiàn)身份證前六位地區(qū)碼對照表文件,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-12-12