資料提取方法-多程式多執行緒爬蟲
- 爬取
頁面的URL是:http://www.qiushibaike.com/8hr/page/1
思路分析:
確定url地址
url地址的規律非常明顯,一共只有13頁url地址
確定資料的位置
資料都在id='content-left’的div下的div中,在這個區域,url地址對應的響應和elements相同
- 上述程式碼改寫成多執行緒方式實現
2.1 回顧多執行緒的方法使用
在python3中,主執行緒主程式結束,子執行緒,子程式不會結束
為了能夠讓主執行緒回收子執行緒,可以把子執行緒設定為守護執行緒,即該執行緒不重要,主執行緒結束,子執行緒結束
t1 = threading.Thread(targe=func,args=(,))
t1.setDaemon(True)
t1.start() #此時執行緒才會啟動
2.2 回顧佇列模組的使用
from queue import Queue
q = Queue(maxsize=100)
item = {}
q.put_nowait(item) #不等待直接放,佇列滿的時候會報錯
q.put(item) #放入資料,佇列滿的時候回等待
q.get_nowait() #不等待直接取,佇列空的時候會報錯
q.get() #取出資料,佇列為空的時候會等待
q.qsize() #獲取佇列中現存資料的個數
q.join() #佇列中維持了一個計數,計數不為0時候讓主執行緒阻塞等待,佇列計數為0的時候才會繼續往後執行
q.task_done()
# put的時候計數+1,get不會-1,get需要和task_done 一起使用才會-1
2.3 多執行緒實現思路剖析
把爬蟲中的每個步驟封裝成函式,分別用執行緒去執行
不同的函式通過佇列相互通訊,函式間解耦
- 將上述程式碼改寫成多程式方式實現
3.1 回顧多程式程的方法使用
from multiprocessing import Process
t1 = Process(targe=func,args=(,))
t1.daemon = True #設定為守護程式
t1.start() #此時執行緒才會啟動
3.2 多程式中佇列的使用
多程式中使用普通的佇列模組會發生阻塞,對應的需要使用multiprocessing提供的JoinableQueue模組,其使用過程和線上程中使用的queue方法相同
重點
能夠通過多執行緒多程式實現爬蟲
掌握queue中put和get以及task_done和join方法的使用
相關文章
- python爬蟲入門八:多程式/多執行緒Python爬蟲執行緒
- 簡易多執行緒爬蟲框架執行緒爬蟲框架
- 多執行緒爬蟲實現(上)執行緒爬蟲
- Python 爬蟲 (四) --多執行緒Python爬蟲執行緒
- python爬蟲之多執行緒、多程式+程式碼示例Python爬蟲執行緒
- python多執行緒爬蟲與單執行緒爬蟲效率效率對比Python執行緒爬蟲
- Python《多執行緒併發爬蟲》Python執行緒爬蟲
- Python 爬蟲 (五) --多執行緒續 (Queue )Python爬蟲執行緒
- Python爬蟲入門【9】:圖蟲網多執行緒爬取Python爬蟲執行緒
- 如何使用queue模組實現多執行緒爬蟲執行緒爬蟲
- 多執行緒,多程式執行緒
- 爬蟲:多程式爬蟲爬蟲
- Python爬蟲入門【10】:電子書多執行緒爬取Python爬蟲執行緒
- 執行緒以及多執行緒,多程式的選擇執行緒
- Python3多執行緒爬蟲例項講解Python執行緒爬蟲
- ***PHP多執行緒pthreads實現QQ號碼爬蟲PHP執行緒thread爬蟲
- Python 多執行緒多程式Python執行緒
- JAVA多執行緒共享資料Java執行緒
- 多執行緒資料採集執行緒
- .NET多執行緒程式設計(1):多工和多執行緒 (轉)執行緒程式設計
- 如何使用python多執行緒有效爬取大量資料?Python執行緒
- 多執行緒(五)---執行緒的Yield方法執行緒
- Python——程式、執行緒、協程、多程式、多執行緒(個人向)Python執行緒
- 多執行緒和多執行緒同步執行緒
- 基於多執行緒+協程的非同步增量式爬蟲執行緒非同步爬蟲
- 【Python】 多程式與多執行緒Python執行緒
- python多執行緒非同步爬蟲-Python非同步爬蟲試驗[Celery,gevent,requests]Python執行緒非同步爬蟲
- VC多執行緒 C++ 多執行緒執行緒C++
- 多執行緒-程式和執行緒的概述執行緒
- 多執行緒掃描資料夾耗時方法分析執行緒
- pytest(13)-多執行緒、多程式執行用例執行緒
- 多執行緒------執行緒與程式/執行緒排程/建立執行緒執行緒
- Python爬蟲:一些常用的爬蟲技巧總結(IP,cookie,header,多執行緒)Python爬蟲CookieHeader執行緒
- 如何爬取 python 進行多執行緒跑資料的內容Python執行緒
- Android中的多程式、多執行緒Android執行緒
- Python的多程式和多執行緒Python執行緒
- 入門python多執行緒/多程式Python執行緒
- 搞定python多執行緒和多程式Python執行緒