轉載自:http://blog.csdn.net/pleasecallmewhy/article/details/19642329
(建議大家多看看官網教程:教程地址)
我們使用dmoz.org這個網站來作為小抓抓一展身手的對象。
首先先要回答一個問題。
問:把網站裝進爬蟲裡,總共分幾步。
答案很簡單,四步: 建立項目 (Project):建立一個新的爬蟲項目 明確目標(Items):明確你想要抓取的目標 製作爬蟲(Spider):製作爬蟲開始爬取網頁 儲存內容(Pipeline):設計管道儲存爬取內容
好的,基本流程既然確定了,那接下來就一步一步的完成就可以了。
1.建立項目(Project)
在空目錄下按住Shift鍵右擊,選擇“在此處開啟命令視窗”,輸入一下命令:
[plain] view plain copy scrapy startproject tutorial
其中,tutorial為項目名稱。
可以看到將會建立一個tutorial檔案夾,目錄結構如下:
[plain] view plain copy tutorial/ scrapy.cfg tutorial/ __init__.py items.py pipelines.py settings.py spiders/ __init__.py ...
下面來簡單介紹一下各個檔案的作用: scrapy.cfg:項目的設定檔
tutorial/:項目的Python模組,將會從這裡引用代碼 tutorial/items.py:項目的items檔案 tutorial/pipelines.py:項目的pipelines檔案 tutorial/settings.py:項目的設定檔案 tutorial/spiders/:儲存爬蟲的目錄
2.明確目標(Item)
在Scrapy中,items是用來載入抓取內容的容器,有點像Python中的Dic,也就是字典,但是提供了一些額外的保護減少錯誤。
一般來說,item可以用scrapy.item.Item類來建立,並且用scrapy.item.Field對象來定義屬性(可以理解成類似於ORM的映射關係)。
接下來,我們開始來構建item模型(model)。
首先,我們想要的內容有: 名稱(name) 連結(url) 描述(description)
修改tutorial目錄下的items.py檔案,在原本的class後面添加我們自己的class。
因為要抓dmoz.org網站的內容,所以我們可以將其命名為DmozItem:
[python] view plain copy # Define here the models for your scraped items # # See documentation in: # http://doc.scrapy.org/en/latest/topics/items.html from scrapy.item import Item, Field class TutorialItem(Item): # define the fields for your item here like: # name = Field() pass class DmozItem(Item): title = Field() link = Field() desc = Field()