下圖顯示了 scrapy 的大體架構,其中包含了它的主要元件及系統的資料處理流程(綠色箭頭所示)。下面就來乙個個解釋每個元件的作用及資料的處理過程。
scrapy 引擎是用來控制整個系統的資料處理流程,並進行事務處理的觸發。更多的詳細內容可以看下面的資料處理流程。
排程程式從 scrapy 引擎接受請求併排序列入佇列,並在 scrapy 引擎發出請求後返還給他們。
蜘蛛是有 scrapy 使用者自己定義用來解析網頁並抓取制定 url 返回的內容的類,每個蜘蛛都能處理乙個網域名稱或一組網域名稱。換句話說就是用來定義特定**的抓取和解析規則。
蜘蛛的整個抓取流程(週期)是這樣的:
專案管道的主要責任是負責處理有蜘蛛從網頁中抽取的專案,他的主要任務是清晰、驗證和儲存資料。當頁面被蜘蛛解析後,將被傳送到專案管道,並經過幾個特定的次序處理資料。每個專案管道的元件都是有乙個簡單的方法組成的 python 類。他們獲取了專案並執行他們的方法,同時他們還需要確定的是是否需要在專案管道中繼續執行下一步或是直接丟棄掉不處理。
專案管道通常執行的過程有:
蜘蛛中介軟體是介於 scrapy 引擎和蜘蛛之間的鉤子框架,主要工作是處理蜘蛛的響應輸入和請求輸出。它提供乙個自定義**的方式來拓展 scrapy 的功能。蛛中介軟體是乙個掛接到 scrapy 的蜘蛛處理機制的框架,你可以插入自定義的**來處理傳送給蜘蛛的請求和返回蜘蛛獲取的響應內容和專案。
排程中介軟體是介於 scrapy 引擎和排程之間的中介軟體,主要工作是處從 scrapy 引擎傳送到排程的請求和響應。他提供了乙個自定義的**來拓展 scrapy 的功能。
scrapy 的整個資料處理流程有 scrapy 引擎進行控制,其主要的執行方式為:
scrapy是由twisted寫的乙個受歡迎的python事件驅動網路框架,它使用的是非堵塞的非同步處理。
爬蟲框架 scrapy 專案檔案詳解
第一部分 基本配置 1 專案名稱,預設的user agent由它來構成,也作為日誌記錄的日誌名 bot name amazon 2 爬蟲應用路徑 spider modules amazon.spiders newspider module amazon.spiders 3 客戶端user agent...
Scrapy 爬蟲框架 物品(Items)詳解
開發環境為 python3.6,scrapy 版本 2.4.x 爬蟲專案全部內容索引目錄 看懂python爬蟲框架,所見即所得一切皆有可能 本章帶你學習基於python3的scrapy 爬蟲框架中資料爬取過程中從非結構化源 通常是網頁 中提取結構化資料。內容基於 scrapy 爬蟲框架 原始碼版本 ...
scrapy爬蟲框架
作者經過幾周的python爬蟲實踐之後,深入學習了一下scrapy這個爬蟲框架,現將一些基本知識和 總結整理一下,以備後查。2.scrapy的命令列使用 這部分網上很多部落格都有總結,不需要背,理解會用主要的命令 startproject crawl fetch list genspider.即可,...