Scrapy筆記零 環境搭建與五大組件架構

  • 2019 年 11 月 26 日
  • 筆記

環境搭建上參看官方說明文檔:http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/install.html

環境搭建:

windows環境下:

從 https://www.python.org/download/ 上安裝Python 2.7.

您需要修改 PATH 環境變數,將Python的可執行程式及額外的腳本添加到系統路徑中。將以下路徑添加到 PATH 中:

     C:Python2.7;C:Python2.7Scripts;       1    C:Python2.7;C:Python2.7Scripts;      

請打開命令行,並且運行以下命令來修改 PATH:

   c:python27python.exe c:python27toolsscriptswin_add2path.py       1    c:python27python.exe c:python27toolsscriptswin_add2path.py     

關閉並重新打開命令行窗口,使之生效。運行接下來的命令來確認其輸出所期望的Python版本:

   <span class="n">python</span> <span class="o">--</span><span class="n">version</span>       1    <span class="n">python</span> <span class="o">--</span><span class="n">version</span>    
   <span class="n">pip</span> <span class="o">--</span><span class="n">version</span>       1    <span class="n">pip</span> <span class="o">--</span><span class="n">version</span>   
  • 到目前為止Python 2.7 及 pip 已經可以正確運行了。接下來安裝Scrapy:
   pip install Scrapy       1    pip install Scrapy   

Ubuntu 9.10及以上版本

  • 不要 使用Ubuntu提供的 python-scrapy ,相較於最新版的Scrapy,該包版本太舊,並且運行速度也較為緩慢。
  • 您可以使用官方提供的 Ubuntu Packages 。該包解決了全部依賴問題, 並且與最新的bug修復保持持續更新。

如果您更傾向於本地構建python的依賴,而不是使用系統庫(system package), 您需要先安裝非python的依賴:

     sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev       1     sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev   
  •         您可以使用 pip 安裝Scrapy:
    pip install Scrapy       1    pip install Scrapy   

Scrapy五大組件介紹

Scrapy框架主要由五大組件組成,它們分別是調試器(Scheduler)、下載器(Downloader)、爬蟲(Spider)和實體管道(Item Pipeline)、Scrapy引擎(Scrapy Engine)。下面我們分別介紹各個組件的作用。

調度器

調度器,說白了可以想像成一個URL(抓取網頁的網址或者說是鏈接)的優先隊列,由它來決定下一個要抓取的網址是什麼,同時去除重複的網址(不做無用功)。用戶可以跟據自己的需求訂製調度器。

下載器

下載器,是所有組件中負擔最大的,它用於高速地下載網路上的資源。Scrapy的下載器程式碼不會太複雜,但效率高,主要的原因是Scrapy下載器是建立在twisted這個高效的非同步模型上的(其實整個框架都在建立在這個模型上的)。

爬蟲

爬蟲,是用戶最關心的部份。用戶訂製自己的爬蟲,用於從特定的網頁中提取自己需要的資訊,即所謂的實體(Item)。用戶也可以從中提取出鏈接,讓Scrapy繼續抓取下一個頁面。

實體管道

實體管道,用於處理爬蟲提取的實體。主要的功能是持久化實體、驗證實體的有效性、清除不需要的資訊。

Scrapy引擎

Scrapy引擎是整個框架的核心。它用來控制調試器、下載器、爬蟲。實際上,引擎相當於電腦的CPU,它控制著整個流程。

Scrapy運行流程

Scrapy運行流程大概如下:

  1. 首先,引擎從調度器中取出一個鏈接(URL)用於接下來的抓取
  2. 引擎把URL封裝成一個請求(Request)傳給下載器,下載器把資源下載下來,並封裝成應答包(Response)
  3. 然後,爬蟲解析Response
  4. 若是解析出實體(Item),則交給實體管道進行進一步的處理。
  5. 若是解析出的是鏈接(URL),則把URL交給Scheduler等待抓取

本文鏈接地址: Scrapy筆記零 環境搭建與五大組件架構