爬蟲課程(六)|Scrapy安裝以及目錄結構介紹

weixin_34162695發表於2017-10-29
5219651-03d5a49ffd9d8d20.png
scrapy架構圖

一、Scrapy安裝

如果順利的話,直接使用下面的命令即可安裝。

方法1:使用pip安裝:pip install Scrapy。

方法2(推薦):使用國內豆瓣源進行安裝,非常快:pip install -i https://pypi.douban.com/simple/ scrapy

二、Scrapy目錄結構介紹

接下來以爬取某人的知乎回答內容為例來講述Scrapy各目錄的作用。

2.1、建立專案

在開始爬取之前,我們必須建立一個新的Scrapy專案。 進入我們打算儲存程式碼的目錄中,執行下列命令:

scrapy startproject tutorial

該命令將會建立包含下列內容的tutorial目錄:

5219651-45d9b0c0eff0e768.png
Scrapy目錄結構

這些檔案分別是:

1)scrapy.cfg: 專案的配置檔案,現在可以先忽略。

2)tutorial/: 該專案的python模組。

3)tutorial/items.py: 專案中的item檔案。

Item 是儲存爬取到的資料的容器;其使用方法和python字典類似, 並且提供了額外保護機制來避免拼寫錯誤導致的未定義欄位錯誤。

類似在ORM中做的一樣,可以通過建立一個 scrapy.Item 類, 並且定義型別為 scrapy.Field 的類屬性來定義一個Item。

首先根據需要從https://www.zhihu.com/people/huangxiaoguai/answers(我的知乎回答url)獲取到的資料對item進行建模。我們需要從知乎回答中獲取回答內容,回答的時間,回答被點贊數。 對此,在item中定義相應的欄位。編輯 tutorial 目錄中的 items.py 檔案:

5219651-9a5a4cba1468bbb6.png
知乎回答item

4)tutorial/pipelines.py: 專案中的pipelines檔案。

Scrapy提供了pipeline模組來執行儲存資料的操作。在建立的 Scrapy 專案中自動建立了一個 pipeline.py 檔案,同時建立了一個預設的 Pipeline 類。比如我們要把item提取的資料儲存到mysql資料庫,可以如下編寫:

5219651-2c7330b91603f22c.png
利用pipelines儲存資料

5)tutorial/settings.py: 專案的設定檔案。

settings.py是Scrapy中比較重要的配置檔案,裡面可以設定的內容非常之多。比如我們在前面提到的在pipelines.py中編寫了把資料儲存到mysql資料的class,那麼怎麼樣才能使得這個class執行呢?就可以在settings設定,如下:

5219651-f4ae632662fc38d0.png
專案的設定檔案settings

6)tutorial/spiders/: 放置spider程式碼的目錄。

這個很好理解,如下圖,我們後面的示例,爬取豆瓣、微博、知乎的爬蟲程式碼檔案都存放在這個資料夾下的。

5219651-d3a09eb8bb6c3573.png
spider程式碼

7)tutorial/middlewares.py:中介軟體,這塊在很後面才會用到,先不介紹。


現在如果對上面各個結構理解的不是很清楚沒關係,在後面的文章中我會通過爬取知乎回答、微博、豆瓣讀書三個示例詳細講解Scrapy各個目錄結構的作用以及它們是如何配合完成從開啟一個網站到把我們需要的資料儲存到資料庫的。

相關文章