說到爬蟲框架,就一定得提提scrapy這個明星框架了,目前Python中最受歡迎的爬蟲框架之一,簡單、方便、易上手。
1 Scrapy基本簡介
Scrapy是python開發的一個快速、高層次、輕量級的屏幕抓取和web抓取的python爬蟲框架,主要用于抓取特定web站點的信息并從中提取特定結構的數據。
它的應用領域很多,比如網絡爬蟲開發、數據挖掘、數據監測。自動化測試等。
scrapy吸引人的一點在于它是一個框架,但任何人都可以根據需求方便的修改,也提供了多種類型爬蟲的基類,如BaseSpider、sitemap爬蟲等。
功 能
高性能的持久化存儲
異步的數據下載
高性能的數據解析
分布式
優 點
Scrapy很容易擴展,快速和功能強大。
這是一個跨平臺應用程序框架(在Windows,Linux,Mac OS和BSD)。
Scrapy請求調度和異步處理。
Scrapy附帶了一個名為Scrapyd的內置服務,它允許使用JSON Web服務上傳項目和控制蜘蛛。
能夠刮削任何網站,即使該網站不具有原始數據訪問API。
2 Scrapy基本使用
安 裝
有兩種方法:
使用pip安裝:pip install Scrapy;
使用Anaconda安裝:
windows+r >>> cmd >>> conda install scrapy >>> 回車;
由于Scrapy相關依賴較多,在安裝過程中可能會碰到下面這些問題,安裝不上的同學可以參考一下:
(1)ImportError: No module named w3lib.http 解決:pip install w3lib
(2)ImportError: No module named twisted 解決:pip install twisted
(3)ImportError: No module named lxml.HTML 解決:pip install lxml
(4)error: libxml/xmlversion.h: No such file or directory 解決:apt-get install libxml2-dev libxslt-dev apt-get install Python-lxml
(5)ImportError: No module named cssselect 解決:pip install cssselect
(6)ImportError: No module named OpenSSL 解決:pip install pyOpenSSL
下面講講Scrapy框架學習最重要的部分;
3 Scrapy整體架構
下面這張圖大家應該都不陌生了,很多有關scrapy框架的介紹中都會出現,能夠看懂這張圖并理解的話基本掌握Scrapy框架沒多大問題了。
基本結構:5+2框架,5個模塊,2個中間件;
最簡單的單個網頁爬取流程是spiders > scheduler > downloader > spiders > item pipeline。