
爬蟲界江湖地位No.1
說起Python,不得不說到它的爬蟲應用,由于Python的短小精悍,用它來開發爬蟲應用是最合適不過了,基于Python抓取網頁的庫有很多,例如requests,beatifulsoup等等,但是要說到有哪一個框架,能囊括了爬蟲,解析,入庫等全部功能的,就不得不提到Scrapy, 在它面前,大部分其他的爬蟲庫都顯得弱爆了,可以說,不單單在Python界,在所有編程語言界,用Scrapy來做爬蟲,開發蜘蛛項目,它稱第二,沒人敢稱第一。
Scrapy簡稱就是碎片,確實,用Scrapy來做網頁爬蟲是非常棒的,它能夠大規模的爬取網頁,能根據各種定義好的特性去有針對性的抓取,例如廣度優先BFD,深度優先DFD, 也可以根據配置的正則表達式過濾不需要的頁面, 還可以對爬取的文件類型做出篩選,例如只抓取html頁面,或者只抓取頁面內的圖片,視頻。
基本來講,以下的這些功能,scrapy都能給我們提供:
Scrapy功能一覽:
1. 豐富的配置項定義:
上面有講到,很多的配置項都可以直接在Setting里面寫,Scrapy可以認為是一個周全的,開放式的框架,通過setting我們幾乎可以去控制抓取,解析等方方面面的技術細節
2. 解析數據:
scrapy的數據解析是很強大的,并且跟selenium非常相似,如果我們已經接觸過selenium,會對其xpath, selector, css這些解析API很有好感;
3. Middleware注入:
用注入來說明middleware的功能,這個類似于Java Spring框架的ROI實現,我們可以定義各種各樣的middleware,去接管網頁抓取,校驗,存儲等過程,當然,如果不需要自定義,直接使用它提供的缺省類,也是一樣可以得到目的的。
此外,Scrapy還具備了以下的更多功能:
Scheduler模塊:這是負責接收requests,對他們進行調度
- Spiders:這個用來給開發者去寫定制化的蜘蛛
- Item Pipeline:這里就是做的抓取到item的處理功能了,例如清洗,持久化。
Scrapy爬蟲框架既沒有很龐大,功能也幾乎能包含所有,并且簡單,實用,它必須是一個好框架.