*爬蟲框架是實現爬蟲功能的一個軟件結構和功能組件集合python
*爬蟲框架是一個半成品,可以幫助用戶實現專業網絡爬蟲數據庫
"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 | Scrapy |
頁面級爬蟲 | 網站級爬蟲 |
功能庫 | 框架 |
併發性考慮不足,性能較差 | 併發性好,性能較高 |
重點在於頁面下載 | 重點在於爬蟲結構 |
定製靈活 | 通常定製靈活,深度定製困難 |
上手十分簡單 | 入門稍難 |
很是小的需求,用requests庫
不過小的需求,Scrapy框架(持續週期性不間斷爬取)
定製程度很高的需求(不考慮規模),自搭框架,requests>Scrapy
*二者均可以進行頁面請求和爬取,python爬蟲的兩個重要技術路線。
*二者可用性都好,文檔豐富,入門簡單。
*二者都沒有處理js、提交表單、應對驗證碼等功能(可擴展)。