一、什麼是scrapy? Scrapy,Python開發的一個快速、高層次的屏幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的數據。Scrapy用途廣泛,可以用於數據挖掘、監測和自動化測試. 其最初是為了頁面抓取 (更確切來說, 網路抓取 )所設計的, 後臺也應用在獲取API所返回的 ...
一、什麼是scrapy?
Scrapy,Python開發的一個快速、高層次的屏幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的數據。Scrapy用途廣泛,可以用於數據挖掘、監測和自動化測試.
其最初是為了頁面抓取 (更確切來說, 網路抓取 )所設計的, 後臺也應用在獲取API所返回的數據(例如 Amazon Associates Web Services ) 或者通用的網路爬蟲.
Scrapy吸引人的地方在於它是一個框架,任何人都可以根據需求方便的修改。它也提供了多種類型爬蟲的基類,如BaseSpider、sitemap爬蟲等,最新版本又提供了web2.0爬蟲的支持.
二、Scrapy五大基本構成:
Scrapy框架主要由五大組件組成,它們分別是調度器(Scheduler)、下載器(Downloader)、爬蟲(Spider)和實體管道(Item Pipeline)、Scrapy引擎(Scrapy Engine)。下麵我們分別介紹各個組件的作用。
(1)、調度器(Scheduler):
調度器,說白了把它假設成為一個URL(抓取網頁的網址或者說是鏈接)的優先隊列,由它來決定下一個要抓取的網址是 什麼,同時去除重覆的網址(不做無用功)。用戶可以自己的需求定製調度器。
(2)、下載器(Downloader):
下載器,是所有組件中負擔最大的,它用於高速地下載網路上的資源。Scrapy的下載器代碼不會太複雜,但效率高,主要的原因是Scrapy下載器是建立在twisted這個高效的非同步模型上的(其實整個框架都在建立在這個模型上的)。
(3)、 爬蟲(Spider):
爬蟲,是用戶最關心的部份。用戶定製自己的爬蟲(通過定製正則表達式等語法),用於從特定的網頁中提取自己需要的信息,即所謂的實體(Item)。 用戶也可以從中提取出鏈接,讓Scrapy繼續抓取下一個頁面。
(4)、 實體管道(Item Pipeline):
實體管道,用於處理爬蟲(spider)提取的實體。主要的功能是持久化實體、驗證實體的有效性、清除不需要的信息。
(5)、Scrapy引擎(Scrapy Engine):
Scrapy引擎是整個框架的核心.它用來控制調試器、下載器、爬蟲。實際上,引擎相當於電腦的CPU,它控制著整個流程
三、scrap框架架構圖
四、Scrapy安裝以及生成項目
1、安裝scrapy框架所需jar包:
打開終端cmd,依次執行如面幾條指令:
python -m pip install --upgrade pip
pip install wheel
pip install lxml
pip install twisted
pip install pywin32
pip install scrapy
2、創建項目
scrapy startproject 項目名
scrapy genspider 爬蟲名 功能變數名稱
scrapy crawl 爬蟲名
工程目錄:
|-ProjectName #項目文件夾
|-ProjectName #項目目錄
|-items.py #定義數據結構
|-middlewares.py #中間件
|-pipelines.py #數據處理
|-settings.py #全局配置
|-spiders
|-__init__.py #爬蟲文件
|-baidu.py
|-scrapy.cfg #項目基本配置文件