建立一個項目 Creating a project
1 進入到想要建立項目的目錄: scrapy startproject tutorial
這樣就可以建立了一個新的scrapy項目tutorial
2 看一下項目的樹形圖
3 簡單的介紹一下每個檔案的用處
scrapy.cfg 是項目的配置檔案
tutorial/ 是項目的入口
items.py 是項目的資料字段檔案
pipelines.py 是項目的管道檔案
settings.py 是項目的配置檔案
spiders/ 是項目中放網絡蜘蛛的目錄
定義我們要的資料字段 Defining our Item
1 定義自己所需要的資料字段是從我們爬取下來的資料中提取的
2 定義字段在items.py中定義Item類來實作的
3 我們在items.py中定義出三個字段,titile和link以及desc
建立第一個網絡蜘蛛 Our first Spider
1 網絡蜘蛛是指從使用者定義好的一組域中爬取資料
2 要建立一個網絡蜘蛛,我們必須在spiders/ 目錄下建立一個檔案
3 我們建立第一個網絡蜘蛛,儲存為dmoz_spider.py
name 是網絡蜘蛛的名稱,名稱要唯一
start_urls 是網絡蜘蛛開始爬取的第一個url
parse()函數 是網絡蜘蛛爬取後response的對象,負責解析響應資料
運作項目 Crawling
1 回到這個項目的最頂層運作:scrapy crawl dmoz
2 有如下結果
3 運作完這個項目之後,在這個項目tutorial産生兩個檔案Books和Resources
項目是怎樣工作的? What just happened under the hood?
scrapy對定義在spider裡面的每一個url産生一個http的request請求,然後通過parse()函數進行復原處理。
提取資料字段 Extracting Items
1 有幾種方法從web頁面中提取資料,比如XPath和CSS
2 幾個XPath例子的解釋
/html/head/title: 選擇所有head内部的title内容
/html/head/title/text(): 選擇所有的位于title内部的text内容
//td: 選擇所有的<td>元素
//div[@class="mine"]: 選擇所有的class名叫mine的div元素
3 選擇器的四個基本方法
xpath(): 傳回一個選擇器清單,每一個代表xpath選擇的
css(): 傳回一個選擇器清單,每一個代表css選擇的
extract(): 傳回一個unicode字元串
re(): 傳回一個unicode字元串從正規表達式中選出的
4 為了說明使用selectors,我們使用scrapy shell
回到項目的最頂層: scrapy shell "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/"
5 出現如下
6 我們可以按照以下的方法試試
7 通過上面的分析,我們可以把我們的網絡蜘蛛spider改成以下代碼
8 最後使用上我們自己定義的Item,Item就像Python裡面的字典一樣
9 最簡單的存儲爬取資料方法是使用Feed exports,使用如下指令
scrapy crawl dmoz -o items.json -t json
這個指令将生成items.json檔案,包含所有爬取的字段