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>
- 從 http://sourceforge.net/projects/pywin32/ 安裝 pywin32 請確認下載符合您系統的版本(win32或者amd64)
- (只有Python<2.7.9才需要) 從 https://pip.pypa.io/en/latest/installing.html 安裝 pip 打開命令行窗口,確認
pip
被正確安裝:
<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運行流程大概如下:
- 首先,引擎從調度器中取出一個鏈接(URL)用於接下來的抓取
- 引擎把URL封裝成一個請求(Request)傳給下載器,下載器把資源下載下來,並封裝成應答包(Response)
- 然後,爬蟲解析Response
- 若是解析出實體(Item),則交給實體管道進行進一步的處理。
- 若是解析出的是鏈接(URL),則把URL交給Scheduler等待抓取
本文鏈接地址: Scrapy筆記零 環境搭建與五大組件架構