天天看點

Python網絡爬蟲4 ---- Linux下編寫最簡單的scrapy網絡爬蟲項目

 建立一個項目 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檔案,包含所有爬取的字段