scrapy流程分析
engine是scrapy的核心,主要負責排程各個元件,保證資料流轉。其中包括每五秒自動執行的呼吸函式。
scheduler負責管理任務、過濾任務、輸出任務的排程器,儲存、去重(中介軟體??)
spider 爬蟲
item pipeline負責輸出結構化資料,可自定義輸出位置(檔案、mysql、mangodb..)
流程圖如下:
scrapy流程圖(自己瞎畫的)
流程概述:
engine從爬蟲中獲取初始化請求(種子url)
engine把該請求放入scheduler中, 同時獲取下乙個請求(這兩為非同步)
engine接受到物件之後,傳送給爬蟲,中間會經過一系列的spider middlewares。
在爬蟲中執行相應的自定義邏輯。執行完邏輯之後,爬蟲執行相應的**方法,處理得到的資料或者新的request請求。將這個結果傳送給engine,中間經過一系列spider middlewares
engine得到返回值,若是requests則再執行2, 若是物件則交由pipeline處理
從1開始重複,直到排程器中沒有新的請求。
參考: scrapy原始碼閱讀分析《一》
跟著大佬走了一遍,還是似懂非懂,但是受益匪淺。
自己修為還差得遠..再走幾遍再走幾遍
軟體測試大致流程
由乙個執行測試用例人員涉及到需求評審 測試用例編寫 測試執行負責人 系統測試 穩定性測試和效能測試 測試環境搭建等工作,這些工作讓自己更清晰的認識測試各個流程 需求評審 需求分析 需求提取 測試點分析 用思維導圖工具輔助 測試用例設計 測試用例評審 測試用例更新完善 測試執行 測試記錄 測試報告 測...
WegGL使用大致流程
在body中定義canvas please use the browser supporting canvas 引入一些專門為webgl準備的 定義好的函式庫 js檔案,用於在中繪製圖形 獲取元素 var canvas document.getelementbyid webgl 獲取webgl繪圖上...
git理解大致流程
所謂分布式,就是每個開發者的本地客戶端都是乙個完整的倉庫,都能記錄歷史版本資訊,不需要聯網也可以生成版本記錄,也可以快速回退到某個版本。如果只有乙個人開發,可以不把本地歷史版本記錄上傳到 伺服器,但如果多人協同開發則需要。檢視當前修改的檔案處於哪乙個區域 紅色 工作區,綠色 暫存區,看不見 已經提交...