目錄:
- 一.Scrapy框架簡介
- 二.Scrapy框架的安裝
- 三.Scrapy框架中各組件的介紹及之間的關係
- 四.Scrapy運行流程
- 五.Scrapy框架項目的創建及運行
- 六.Scrapy框架項目結構
- 七.Scrapy框架詳細應用&實戰項目
- 八.Scrapy框架的特殊用法
- 九.總結
一.Scrapy框架簡介:
- 爲了爬取網站數據而編寫的一款應用框架,所謂的框架其實就是一個集成了相應的功能且具有很強通用性的項目模板該框架提供了高性能的異步下載(Twisted異步網絡庫來處理網絡通訊),解析和持久化等功能;
- Scrapy 內置的css和xpath selector 兩種解析方式較方便;
- Scrapy最新版本又提供了web2.0爬蟲的支持;
二.Scrapy框架的安裝:
1.windows環境:
首先裝載python集成開發環境Anaconda,省去安裝其他庫;
conda install Scrapy
2.Linux環境:
pip3 install scrapy
三.Scrapy框架中各組件的介紹及之間的關係
整體架構如下:
Scrapy主要包括了以下組件:
- 引擎(Scrapy):用來處理整個系統的數據流處理, 觸發事務(框架核心)
- 調度器(Scheduler): 用來接受引擎發過來的請求, 壓入隊列中, 並在引擎再次請求的時候返回. 可以想像成一個URL(抓取網頁的網址或者說是鏈接)的優先隊列, 由它來決定下一個要抓取的網址是什麼, 同時去除重複的網址
- 下載器(Downloader):用於下載網頁內容, 並將網頁內容返回給蜘蛛(Scrapy下載器是建立在twisted這個高效的異步模型上
- 爬蟲(Spiders):爬蟲是主要幹活的, 用於從特定的網頁中提取自己需要的信息, 即所謂的實體(Item)。用戶也可以從中提取出鏈接,讓Scrapy繼續抓取下一個頁面
- 項目管道(Pipeline):負責處理爬蟲從網頁中抽取的實體,主要的功能是持久化實體、驗證實體的有效性、清除不需要的信息。當頁面被爬蟲解析後,將被髮送到項目管道,並經過幾個特定的次序處理數據。
- 下載器中間件(Downloader Middlewares):位於Scrapy引擎和下載器之間的框架,主要是處理Scrapy引擎與下載器之間的請求及響應。
- 爬蟲中間件(Spider Middlewares):介於Scrapy引擎和爬蟲之間的框架,主要工作是處理蜘蛛的響應輸入和請求輸出。
- 調度中間件(Scheduler Middewares):介於Scrapy引擎和調度之間的中間件,從Scrapy引擎發送到調度的請求和響應。
四.Scrapy運行流程
Scrapy執行流程圖
運行流程:
- 引擎從調度器中取出一個鏈接(URL)用於接下來的抓取;
- 引擎把URL封裝成一個請求(Request)傳給下載器;
- 下載器把資源下載下來,並封裝成應答包(Response);
- 爬蟲解析Response;
- 解析出實體(Item),則交給實體管道進行進一步的處理;
- 解析出的是鏈接(URL),則把URL交給調度器等待抓取;
五.Scrapy框架項目的創建及運行
1.創建虛擬環境:
第一步:在命令提示符中鍵入pip install virtualenv,回車,即可自動執行安裝virtualenv
第二步:進入到我們想創建虛擬環境的目錄,如博主想在E盤下的Envs文件夾中創建一個名爲helloworld的虛擬環境。首先進入目標目錄,鍵入命令virtualenv helloworld,回車,等待創建成功即可
2.在cmd中創建scrapy項目
- 命令一:創建項目文件 scrapy startproject 項目名稱
- 命令二:創建爬蟲應用
scrapy genspider 爬蟲名
要爬取的域名 - 命令三: 運行爬蟲應用 scrapy crawl 爬蟲應用名稱
ps: 1.項目名和爬蟲名不能相同
2.查看所有命令:scrapy gensipider
-
l
六.Scrapy框架項目結構
- items.py:用來存放爬蟲爬取的數據的模型
- middlewares.py:用來存放各種中間件的文件
- pipelines.py:用來將items的模型存儲到本地磁盤
- settings.py:存儲本爬蟲的一些配置信息,比如:請求頭、ip代理池等
- spiders目錄:存儲所有的爬蟲代碼
- scrapy.cfg:項目的配置文件
七.Scrapy框架詳細應用&實戰項目
...
八.Scrapy框架的特殊用法
...
九.總結
...