1. 程式人生 > 實用技巧 >001 Scrapy框架入門

001 Scrapy框架入門

[A] Scrapy簡介

  1. Scrapy使用純Python實現一個爬取網站資料,提取結構性資料而編寫的應用框架,用途十分廣泛

  2. 在Scrapy框架下,使用者只需要定值開發幾個模組就可以輕鬆的實現一個爬蟲

  3. Scrapy使用了Twisted(其主要對手是Tornado)非同步網路來處理網路請求,可以加快我們的下載速度,不用自己去實現非同步框架,並且包含了各種中介軟體介面,可以靈活的滿足各種需求

[B] Scrapy框架圖(綠線為資料流向)

    Scrapy採取 5 + 2 的結構模式,即 5個模組 + 2 箇中間件

  五個模組:

    1. Scrapy Engine(引擎)

        負責Spider(爬蟲),ItemPipeline(管道),Downloader,Scheduler中間的通訊,訊號,資料的傳輸等

    2.Scheduler(排程器)

        負責接受 Scrapy Engine(引擎) 發過來的 Request 請求,並按照一定的方式進行整理排列、入隊,當 Scrapy Engine(引擎) 需要時,交還給引擎

    3. Downloader(下載器)

        負責下載 Scrapy Engine(引擎)發過來的所有 Request 請求,並將其獲取到的Responses交還給Scrapy Engine(引擎),由Scrapy Engine(引擎) 交給Spider(爬蟲) 來處理

    4. Spider(爬蟲)

        負責處理所有 Responses ,從中Fenix提取資料,獲取Item欄位需要的資料,並將需要跟進的URL提交給 Scrapy Engine(引擎) ,再次進入Scheduler(排程器)

    5. Item Pipeline(管道)

        負責處理Spider中獲取到的 Item ,並進行後期處理(詳細分析,過濾,儲存等)。

  兩個中介軟體:

    1. Downloader(下載中介軟體)

        可以當做一個自定義拓展下載功能的元件

    2. Spider Middlewares(Spider中介軟體)

        可以理解為一個自定義拓展和操作Scrapy Engine(引擎) 和Spider(爬蟲) 中間通訊的功能元件(比如進入Spider的Responses;和從Spider出去的Requests)

  

[C] 製作Scrapy爬蟲的步驟

    一共需要4個步驟:

  1. 新建專案 (scrapy stratproject xxx)

      建立一個新的爬蟲專案

  2. 明確目標 (編寫 items.py)

      明確你要爬取的目標

  3. 製作爬蟲 (spider / xxxspider.py)

      製作爬蟲開始爬取網頁

  4. 儲存內容 (pipeline.py)

      設計管道儲存爬取內容