Scrapy框架

Scrapy 框架

Scrapy是用純Python實現(xiàn)一個為了爬取網(wǎng)站數(shù)據(jù)、提取結構性數(shù)據(jù)而編寫的應用框架,用途非常廣泛。

框架的力量,用戶只需要定制開發(fā)幾個模塊就可以輕松的實現(xiàn)一個爬蟲,用來抓取網(wǎng)頁內(nèi)容以及各種圖片,非常之方便。

Scrapy 使用了 Twisted['tw?st?d] 異步網(wǎng)絡框架來處理網(wǎng)絡通訊,可以加快我們的下載速度,不用自己去實現(xiàn)異步框架,并且包含了各種中間件接口,可以靈活的完成各種需求。
補充知識:

5c1785d6902b7.png

異步:調用在發(fā)出之后,這個調用就直接返回,不管有無結果 非阻塞:關注的是程序在等待調用結果(消息,返回值)時的狀態(tài),指在不能立刻得到結果之前,該調用不會阻塞當前線程

Scrapy架構圖(綠線是數(shù)據(jù)流向):


5c17862075585.png
  1. Scrapy Engine(引擎): 負責Spider、ItemPipeline、Downloader、Scheduler中間的通訊,信號、數(shù)據(jù)傳遞等。

  2. Scheduler(調度器): 它負責接受引擎發(fā)送過來的Request請求,并按照一定的方式進行整理排列,入隊,當引擎需要時,交還給引擎。

  3. Downloader(下載器):負責下載Scrapy Engine(引擎)發(fā)送的所有Requests請求,并將其獲取到的Responses交還給Scrapy Engine(引擎),由引擎交給Spider來處理,

  4. Spider(爬蟲):它負責處理所有Responses,從中分析提取數(shù)據(jù),獲取Item字段需要的數(shù)據(jù),并將需要跟進的URL提交給引擎,再次進入Scheduler(調度器),

  5. Item Pipeline(管道):它負責處理Spider中獲取到的Item,并進行進行后期處理(詳細分析、過濾、存儲等)的地方.

  6. Downloader Middlewares(下載中間件):你可以當作是一個可以自定義擴展下載功能的組件。

  7. Spider Middlewares(Spider中間件):你可以理解為是一個可以自定擴展和操作引擎和Spider中間通信的功能組件(比如進入Spider的Responses;和從Spider出去的Requests)

5c17863914b96.png

注意!只有當調度器中不存在任何request了,整個程序才會停止,(也就是說,對于下載失敗的URL,Scrapy也會重新下載。)

Scrapy的安裝介紹

Scrapy框架官方網(wǎng)址:http://doc.scrapy.org/en/latest

Scrapy中文維護站點:http://scrapy-chs.readthedocs.io/zh_CN/latest/index.html

Windows 安裝方式

  • Python 3
  • 升級pip版本:

pip3 install --upgrade pip

  • 通過pip 安裝 Scrapy 框架

pip3 install Scrapy

Ubuntu 安裝方式

  • 通過pip3 安裝 Scrapy 框架

sudo pip3 install scrapy

如果安裝不成功再試著添加這些依賴庫

  • 安裝非Python的依賴

sudo apt-get install python3-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev

安裝后,只要在命令終端輸入 scrapy,提示類似以下結果,代表已經(jīng)安裝成功

屏幕快照 2019-01-05 14.03.12.png
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容