Scrapy爬蟲框架結構以及和Requests庫的比較

爬蟲框架

*爬蟲框架是實現爬蟲功能的一個軟件結構和功能組件集合python

*爬蟲框架是一個半成品,可以幫助用戶實現專業網絡爬蟲數據庫

Scrapy爬蟲框架結構

"5+2"結構網絡

Spiders(用戶提供Url、以及解析內容)、Item pipelines(對提取的信息進行處理)模塊須要用戶編寫(配置)併發

其餘模塊:Engine、Scheduler、Downloader模塊已有實現,不須要用戶進行修改python爬蟲

Engine:控制全部模塊之間的數據流、根據條件觸發事件,不須要用戶修改框架

Downloader:根據請求下載網頁,不須要用戶修改ide

Scheduler:對全部爬取請求進行調度管理、不須要用戶進行修改性能

Downloader Middleware(中間件)網站

目的:實施Engine、Scheduler和Downloader之間進行用戶可配置的控制spa

功能:修改、丟棄、新增請求或響應

用戶能夠編寫配置代碼

Spider:解析Downloader返回的響應(Response)、產生爬取項(scraped item)、產生額外的爬取請求(Request)

Item pipelines:以流水線方式處理Spider產生的爬取項、由一組操做順序組成,相似流水線,每一個操做是一個Item Pipeline類型。

可能的操做包括:清理、檢驗和查重爬取項中的HTML數據、將數據存儲到數據庫。

Spider Middleware(中間件)

目的:對請求和爬取項的再處理

功能:修改、丟棄、新增請求或爬取項

用戶能夠編寫配置代碼

 

                                                           requests vs.Scrapy

requests Scrapy
頁面級爬蟲 網站級爬蟲
功能庫 框架
併發性考慮不足,性能較差 併發性好,性能較高
重點在於頁面下載 重點在於爬蟲結構
定製靈活 通常定製靈活,深度定製困難
上手十分簡單 入門稍難

兩個方法看狀況用

很是小的需求,用requests庫

不過小的需求,Scrapy框架(持續週期性不間斷爬取)

定製程度很高的需求(不考慮規模),自搭框架,requests>Scrapy

相同點

*二者均可以進行頁面請求和爬取,python爬蟲的兩個重要技術路線。

*二者可用性都好,文檔豐富,入門簡單。

*二者都沒有處理js、提交表單、應對驗證碼等功能(可擴展)。

相關文章
相關標籤/搜索