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


爬蟲框架

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

*爬蟲框架是一個半成品,能夠幫助用戶實現專業網絡爬蟲

Scrapy爬蟲框架結構

"5+2"結構

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

其他模塊:Engine、Scheduler、Downloader模塊已有實現,不需要用戶進行修改

Engine:控制所有模塊之間的數據流、根據條件觸發事件,不需要用戶修改

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

Scheduler:對所有爬取請求進行調度管理、不需要用戶進行修改

Downloader Middleware(中間件)

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

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

用戶可以編寫配置代碼

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、提交表單、應對驗證碼等功能(可擴展)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM