創建項目
在開始爬取之前,您必須創建一個新的Scrapy項目。 進入您打算存儲代碼的目錄中,運行下列命令:
scrapy startproject tutorial
該命令將會創建包含下列內容的 tutorial
目錄:
tutorial/
scrapy.cfg
tutorial/
__init__.py
items.py
pipelines.py
settings.py
spiders/
__init__.py
...
這些文件分別是:
scrapy.cfg
: 項目的配置文件tutorial/
: 該項目的python模塊。之後您將在此加入代碼。tutorial/items.py
: 項目中的item文件.tutorial/pipelines.py
: 項目中的pipelines文件.tutorial/settings.py
: 項目的設置文件.tutorial/spiders/
: 放置spider代碼的目錄.編寫第一個爬蟲(Spider)
Spider是用戶編寫用於從單個網站(或者一些網站)爬取數據的類。
其包含了一個用於下載的初始URL,如何跟進網頁中的鏈接以及如何分析頁面中的內容, 提取生成item 的方法。
爲了創建一個Spider,您必須繼承
scrapy.Spider
類, 且定義以下三個屬性:name
: 用於區別Spider。 該名字必須是唯一的,您不可以爲不同的Spider設定相同的名字。start_urls
: 包含了Spider在啓動時進行爬取的url列表。 因此,第一個被獲取到的頁面將是其中之一。 後續的URL則從初始的URL獲取到的數據中提取。parse()
是spider的一個方法。 被調用時,每個初始URL完成下載後生成的Response
對象將會作爲唯一的參數傳遞給該函數。 該方法負責解析返回的數據(response data),提取數據(生成item)以及生成需要進一步處理的URL的Request
對象。
- 命令爲:scrapy genspider dmoz_spider example.com
- 或者爲:scrapy genspider dmoz_spider dmoz.org
- 如此,第一個爬蟲及創建完成,接下來就開始寫自己的爬蟲就可以了,當然你還可以傳到數據庫裏,然後從mongodb的可視化工具中觀察其爬取狀態以及最後結果。