在學習了這些基本的一些知識點之後,我們就能爬取一個簡單的頁面了,但是如果希望我們在一堆的資料和頁面中查找我們想要的就很麻煩了,故我們需要好好學習一下scrapy架構
基本知識
scrapy實際就是scrath 和python的合稱,使用了Twisted異步網絡庫來處理網絡通訊
官網網址:scrapy
安裝scrapy的官網教程:安裝
安裝
安裝可能需要用到的插件
(以下直接用pip install XXX 即可)
-
lxml 安裝
lxml是一種使用 Python 編寫的庫,可以迅速、靈活地處理 XML
- setuptools 安裝
setuptools是 Python Enterprise Application Kit(PEAK)的一個副項目,它 是一組Python的 distutilsde工具的增強工具(适用于 Python 2.3.5 以上的版本,64 位平台則适用于 Python 2.4 以上的版本),可以讓程式員更友善的建立和釋出 Python 包,特别是那些對其它包具有依賴性的狀況。
-
zope.inteface 安裝
python支援多繼承,但是不支援接口,zope.inteface是其三方的接口實作庫
-
Twisted 安裝
用Python實作的基于事件驅動的網絡引擎架構
-
pyOpenSSL 安裝
pyOpenSSL是Python的OpenSSL接口(具體可自行百度)
-
win32py 安裝
其功能為:
1.捕獲視窗
2.模拟滑鼠鍵盤動作
3.自動擷取某路徑下檔案清單
4.PIL截屏功能
-
Scrapy 安裝
後面詳細介紹其功能
小元件
該部分參考了一位大神的部落格
元件 | 作用 |
---|---|
引擎 | 用來處理整個系統的資料流處理,觸發事務 |
排程器 | 用來接受引擎發過來的請求,壓入隊列中,并在引擎再次請求的時候傳回 |
下載下傳器 | 用于下載下傳網頁内容,并将網頁内容傳回給蜘蛛。 |
蜘蛛 | 蜘蛛是主要幹活的,用它來制訂特定域名或網頁的解析規則。 |
項目管道 | 負責處理有蜘蛛從網頁中抽取的項目,他的主要任務是清晰、驗證和存儲資料,當頁面被蜘蛛解析後,将被發送到項目管道,并經過幾個特定的次序處理資料。 |
排程中間件 | 介于Scrapy引擎和排程之間的中間件,從Scrapy引擎發送到排程的請求和響應。 |
下載下傳器中間件 | 位于Scrapy引擎和下載下傳器之間的鈎子架構,主要是處理Scrapy引擎與下載下傳器之間的請求及響應。 |
蜘蛛中間件 | 介于Scrapy引擎和蜘蛛之間的鈎子架構,主要工作是處理蜘蛛的響應輸入和請求輸出。 |
介紹一下其運作流程:
- 引擎從排程器中取出一個連結(URL)用于接下來的抓取工作
- 引擎把URL封裝成一個請求(Request)傳給下載下傳器
-
下載下傳器把資源下載下傳下來,并封裝成應答包(Response)
再通過爬蟲來解析Response
- 解析出實體(Item),然後交給實體管道進行進一步的處理
- 解析出的是連結(URL),則把URL交給排程器等待抓取
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL6lEROd3a65EMRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxIjMyEzNyATM0EDOwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
第六篇關于scrapy基本架構的學習就到此結束啦!