天天看點

python應用:爬蟲架構Scrapy系統學習第四篇——scrapy爬取筆趣閣小說

使用cmd建立一個scrapy項目:

  scrapy startproject project_name (project_name 必須以字母開頭,隻能包含字母、數字以及下劃線<underscorce>)

  項目目錄層級如下:

  

python應用:爬蟲架構Scrapy系統學習第四篇——scrapy爬取筆趣閣小說

聲明Item

  聲明我們可能用到的所有字段,包括管理字段等。管理字段可以讓我們清楚何時(date)、何地(url server)及如何(spider)執行爬去,此外,還可以自動完成諸如使item失效、規劃新的抓取疊代或是删除來自有問題的爬蟲的item。

url

response.url

例:‘http://www.baidu.com’

project

self.ettings.get('BOT_NAME')

例:‘crawl_novel’

spider

self.name

例:‘basic’

server

socket.gethostname()

例:‘scrapyserverl’

date

datetime.datetime.now()

例:‘datetime.datetime(2019,1,21……)’

編寫爬蟲并填充item

使用scrapy genspider 指令

  scrapy genspider -l         檢視可用模闆

  scrapy genspider -t         使用任意其他模闆建立爬蟲

  e.g.  scrapy genspider basic www         spiders目錄中新增一個basic.py檔案,并限制隻能爬取www域名下的url

使用 scrapy crawl 指令運作爬蟲檔案

  e.g.  scrapy crawl basic          (basic是spider下的爬蟲檔案)

使用 scrapy parse指令用不同頁面調試代碼

  e.g. scrapy parse --spider=basic  http://www.……

使用scrapy crawl basic -o +檔案名.檔案類型  儲存檔案

  e.g. scrapy crawl basic -o items.json(items.csv、items.j1、items.xml)

basic.py

清理——item裝載器、添加管理字段,并對資料進行格式化和清洗

使用ItemLoader以代替那些雜亂的extract()和xpath()操作

使用MapCompose參數

使用lambda表達式

建立contract,檢驗代碼可用性

使用scrapy check + 檔案名 執行

  e.g. scrapy check basic