python 爬虫 scrapy 和 requsts 哪个快_Scrapy爬虫框架结构以及和Requests库的比较
爬蟲框架
*爬蟲框架是實現(xiàn)爬蟲功能的一個軟件結(jié)構(gòu)和功能組件集合
*爬蟲框架是一個半成品,能夠幫助用戶實現(xiàn)專業(yè)網(wǎng)絡(luò)爬蟲
Scrapy爬蟲框架結(jié)構(gòu)
"5+2"結(jié)構(gòu)
Spiders(用戶提供Url、以及解析內(nèi)容)、Item pipelines(對提取的信息進行處理)模塊需要用戶編寫(配置)
其他模塊:Engine、Scheduler、Downloader模塊已有實現(xiàn),不需要用戶進行修改
Engine:控制所有模塊之間的數(shù)據(jù)流、根據(jù)條件觸發(fā)事件,不需要用戶修改
Downloader:根據(jù)請求下載網(wǎng)頁,不需要用戶修改
Scheduler:對所有爬取請求進行調(diào)度管理、不需要用戶進行修改
Downloader Middleware(中間件)
目的:實施Engine、Scheduler和Downloader之間進行用戶可配置的控制
功能:修改、丟棄、新增請求或響應(yīng)
用戶可以編寫配置代碼
Spider:解析Downloader返回的響應(yīng)(Response)、產(chǎn)生爬取項(scraped item)、產(chǎn)生額外的爬取請求(Request)
Item pipelines:以流水線方式處理Spider產(chǎn)生的爬取項、由一組操作順序組成,類似流水線,每個操作是一個Item Pipeline類型。
可能的操作包括:清理、檢驗和查重爬取項中的HTML數(shù)據(jù)、將數(shù)據(jù)存儲到數(shù)據(jù)庫。
Spider Middleware(中間件)
目的:對請求和爬取項的再處理
功能:修改、丟棄、新增請求或爬取項
用戶可以編寫配置代碼
requests vs.Scrapy
requests
Scrapy
頁面級爬蟲
網(wǎng)站級爬蟲
功能庫
框架
并發(fā)性考慮不足,性能較差
并發(fā)性好,性能較高
重點在于頁面下載
重點在于爬蟲結(jié)構(gòu)
定制靈活
一般定制靈活,深度定制困難
上手十分簡單
入門稍難
兩個方法看情況用
非常小的需求,用requests庫
不太小的需求,Scrapy框架(持續(xù)周期性不間斷爬取)
定制程度很高的需求(不考慮規(guī)模),自搭框架,requests>Scrapy
相同點
*兩者都可以進行頁面請求和爬取,python爬蟲的兩個重要技術(shù)路線。
*兩者可用性都好,文檔豐富,入門簡單。
*兩者都沒有處理js、提交表單、應(yīng)對驗證碼等功能(可擴展)。
總結(jié)
以上是生活随笔為你收集整理的python 爬虫 scrapy 和 requsts 哪个快_Scrapy爬虫框架结构以及和Requests库的比较的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 判断来源 微信客户端_PHP判断
- 下一篇: python 内存不足 dict 替代方