Python學習日記 Scrapy框架 1.Scrapy框架原理

Python學習日記   Scrapy框架 1.Scrapy框架原理

 

一、介紹

Scrapy是一個開源和協作的框架,最初是爲了頁面抓取(網絡抓取)所設計的,使用它可以快速、簡單、可擴展的方式從網站中提取所需的數據。目前Scrapy的用途十分廣泛,可用作數據挖掘、檢測、自動化測試等領域,也可以應用在獲取API所返回的數據或者通用的網絡爬蟲

Scrapy 是基於twisted框架開發而來,twisted是一個流行的事件驅動的python網絡框架。因此Scrapy使用了一種非阻塞(又名異步)的代碼來實現併發。整體框架圖如下:

 scrapy框架分爲七大部分核心的組件

1、引擎(EGINE)

引擎負責控制系統所有組件之間的數據流,並在某些動作發生時觸發事件。有關詳細信息,請參見上面的數據流部分。

2、調度器(SCHEDULER)

用來接受引擎發過來的請求, 壓入隊列中, 並在引擎再次請求的時候返回. 可以想像成一個URL的優先級隊列, 由它來決定下一個要抓取的網址是什麼, 同時去除重複的網址

3、下載器(DOWLOADER)

用於下載網頁內容, 並將網頁內容返回給EGINE,下載器是建立在twisted這個高效的異步模型上的

4、爬蟲(SPIDERS)

SPIDERS是開發人員自定義的類,用來解析responses,並且提取items,或者發送新的請求

5、項目管道(ITEM PIPLINES)

在items被提取後負責處理它們,主要包括清理、驗證、持久化(比如存到數據庫)等操作

6、下載器中間件(Downloader Middlewares)

 下載器中間件是在引擎及下載器之間的特定鉤子(specific hook),處理Downloader傳遞給引擎的response。 其提供了一個簡便的機制,通過插入自定義代碼來擴展Scrapy功能。更多內容請看 下載器中間件(Downloader Middleware) 。

7、爬蟲中間件(Spider Middlewares)

 Spider中間件是在引擎及Spider之間的特定鉤子(specific hook),處理spider的輸入(response)和輸出(items及requests)。 其提供了一個簡便的機制,通過插入自定義代碼來擴展Scrapy功能。更多內容請看 Spider中間件(Middleware) 。

二、安裝

在cmd輸入pip install scrapy 或者 conda install scrapy(需要安裝anaconda)

注:pip下載速度過慢,可以通過pip源轉爲國內鏡像網站:

清華:https://pypi.tuna.tsinghua.edu.cn/simple/
阿里雲:http://mirrors.aliyun.com/pypi/simple/
中國科技大學 https://pypi.mirrors.ustc.edu.cn/simple/
華中理工大學:http://pypi.hustunique.com/
山東理工大學:http://pypi.sdutlinux.org/ 
豆瓣:http://pypi.douban.com/simple/

如果是臨時性的,可以使用pip參數 -i + 國內鏡像源地址 + 庫名,進行安裝:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ scrapy

 

發佈了148 篇原創文章 · 獲贊 6 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章