Python爬蟲知識點四--scrapy框架

LHBlog發表於2017-11-27

一。scrapy結構資料

解釋:

1.名詞解析:

o 引擎(Scrapy Engine)
o 排程器(Scheduler)
o 下載器(Downloader)
o 蜘蛛(Spiders)
o 專案管道(Item Pipeline)
o 下載器中介軟體(Downloader Middlewares)
o 蜘蛛中介軟體(Spider Middlewares)
o 排程中介軟體(Scheduler Middlewares)

2.具體解析

綠線是資料流向
 從初始URL開始,Scheduler會將其交給Downloader進
行下載
 下載之後會交給Spider進行分析
 Spider分析出來的結果有兩種
 一種是需要進一步抓取的連結,如 “下一頁”的連結,它們
會被傳回Scheduler;另一種是需要儲存的資料,它們被送到Item Pipeline裡,進行
後期處理(詳細分析、過濾、儲存等)。
 在資料流動的通道里還可以安裝各種中介軟體,進行必
要的處理。

二。初始化爬蟲框架  Scrapy

命令: scrapy startproject qqnews

ps:真正的專案是在spiders裡面寫入的

 三。scrapy元件spider

爬取流程
 1. 先初始化請求URL列表,並指定下載後處
理response的回撥函式。
2. 在parse回撥中解析response並返回字典,Item
物件,Request物件或它們的迭代物件。
3 .在回撥函式裡面,使用選擇器解析頁面內容
,並生成解析後的結果Item。
4. 最後返回的這些Item通常會被持久化到資料庫
中(使用Item Pipeline)或者使用Feed exports將
其儲存到檔案中。

標準專案結構例項:

1.items結構:定義變數,根據不同種資料結構定義

2.spider結構中引入item裡面,並作填充item

 

 3。pipline去清洗,驗證,存入資料庫,過濾等等 後續處理

Item Pipeline常用場景
 清理HTML資料
 驗證被抓取的資料(檢查item是否包含某些欄位)
 重複性檢查(然後丟棄)
 將抓取的資料儲存到資料庫中

4.Scrapy元件Item Pipeline

經常會實現以下的方法:
 open_spider(self, spider) 蜘蛛開啟的時執行
 close_spider(self, spider) 蜘蛛關閉時執行
 from_crawler(cls, crawler) 可訪問核心元件比如配置和
訊號,並註冊鉤子函式到Scrapy中

 pipeline真正處理邏輯

定義一個Python類,實現方法process_item(self, item,
spider)即可,返回一個字典或Item,或者丟擲DropItem
異常丟棄這個Item。

5.settings中定義哪種型別的pipeline

 

 

 持續更新中。。。。,歡迎大家關注我的公眾號LHWorld.

相關文章