談起爬蟲必然要提起 Scrapy 框架,因為它能夠幫助提升爬蟲的效率,從而更好地實現爬蟲。
Scrapy 是一個為了抓取網頁資料、提取結構性資料而編寫的應用框架,該框架是封裝的,包含 request (非同步排程和處理)、下載器(多執行緒的 Downloader)、解析器(selector)和 twisted(非同步處理)等。對於網站的內容爬取,其速度非常快捷。
也許讀者會感到迷惑,有這麼好的爬蟲框架,為什麼前面的章節還要學習使用 requests 庫請求網頁資料。其實,requests 是一個功能十分強大的庫,它能夠滿足大部分網頁資料獲取的需求。其工作原理是向伺服器傳送資料請求,至於資料的下載和解析,都需要自己處理,因而靈活性高;而由於 Scrapy 框架的封裝,使得其靈活性降低。
至於使用哪種爬蟲方式,完全取決於個人的實際需求。在沒有明確需求之前,筆者依然推薦初學者先選擇 requests 庫請求網頁資料,而在業務實戰中產生實際需求時,再考慮 Scrapy 框架。
Scrapy 安裝
直接使用 pip 安裝 Scrapy 會產生一些錯誤的安裝提示資訊,導致 Scrapy 無法正常安裝。當然,既然有問題出現,必然對應著許多的解決辦法。在 http://www.lfd.uci.edu/~gohlke/pythonlibs 網站中,擁有很多適用於 Windows 的、已經編譯好的 Python 第三方庫,讀者只需根據錯誤的安裝提示資訊找到相應的包,進行安裝即可,此處不對這種方法進行詳細講解。本小節主要介紹如何在 PyCharm 中安裝 Scrapy。
第一步,選擇 Anaconda 3 作為編譯環境。在 PyCharm 中單擊左上角 File 選項,單擊“Settings”按鈕,彈出如圖 1 所示介面,然後展開 Project Interpreter 的下拉式選單,選擇 Anaconda 3 的下拉式選單:
圖 1