scrapy框架總結(jié)

異步: 在調(diào)用發(fā)出后,可以直接返回,不管喲偶沒有結(jié)果。

非阻塞:是指程序在等待調(diào)用結(jié)果時(shí)的狀態(tài),指在不能立刻得到結(jié)果之前,該調(diào)用不會(huì)阻塞當(dāng)前線程

流程:1.首先Spiders(爬蟲)將需要發(fā)送請求的url(requests)經(jīng)ScrapyEngine(引擎)交給Scheduler(調(diào)度器)。

2.Scheduler(排序,入隊(duì))處理后,經(jīng)ScrapyEngine,DownloaderMiddlewares(可選,主要有User_Agent, Proxy代理)交給Downloader。

3.Downloader向互聯(lián)網(wǎng)發(fā)送請求,并接收下載響應(yīng)(response)。將響應(yīng)(response)經(jīng)ScrapyEngine,SpiderMiddlewares(可選)交給Spiders。

4.Spiders處理response,提取數(shù)據(jù)并將數(shù)據(jù)經(jīng)ScrapyEngine交給ItemPipeline保存(可以是本地,可以是數(shù)據(jù)庫)。

5.提取url重新經(jīng)ScrapyEngine交給Scheduler進(jìn)行下一個(gè)循環(huán)。直到?jīng)]有Url請求程序停止結(jié)束。

文件作用:

Scrapy Engine(引擎): 負(fù)責(zé)Spider、ItemPipeline、Downloader、Scheduler中間的通訊,信號(hào)、數(shù)據(jù)傳遞等。

Scheduler(調(diào)度器): 它負(fù)責(zé)接受引擎發(fā)送過來的Request請求,并按照一定的方式進(jìn)行整理排列,入隊(duì),當(dāng)引擎需要時(shí),交還給引擎。

Downloader(下載器):負(fù)責(zé)下載Scrapy Engine(引擎)發(fā)送的所有Requests請求,并將其獲取到的Responses交還給Scrapy Engine(引擎),由引擎交給Spider來處理,

Spider(爬蟲):它負(fù)責(zé)處理所有Responses,從中分析提取數(shù)據(jù),獲取Item字段需要的數(shù)據(jù),并將需要跟進(jìn)的URL提交給引擎,再次進(jìn)入Scheduler(調(diào)度器),

Item Pipeline(管道):它負(fù)責(zé)處理Spider中獲取到的Item,并進(jìn)行進(jìn)行后期處理(詳細(xì)分析、過濾、存儲(chǔ)等)的地方.

Downloader Middlewares(下載中間件):可以自定義擴(kuò)展下載功能的組件(代理、cokies等)。

Spider Middlewares(Spider中間件):可以自定擴(kuò)展和操作引擎和Spider中間通信的功能組件

scrapy框架的使用:

? ? 1:先創(chuàng)建目錄:scrapy? startproject 爬蟲名稱

? ? ?2:創(chuàng)建爬蟲文件: scrapy?genspider 爬蟲名字 域名

? ? 3 運(yùn)行? scrapy crawl 爬蟲文件名稱

? ? ?response.url得到請求的url

? ? response.text得到響應(yīng)的字符串內(nèi)容

????response.status得到響應(yīng)狀態(tài)碼

????response.headers得到響應(yīng)頭部

在scrapy框架里可以直接使用xpath 和 css?

response.xpath():里面寫xpath路徑 得到的都是selector對象 需要通過extract()提取

response.css(): 里面寫選擇器, 選擇器::text獲取屬性 , ::attr(屬性) 得到的也都是selector對象,也需要extract去提取

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本主題主要是scrapy入門,包含內(nèi)容如下:??1. Scrapy框架環(huán)境搭建;??2. 理解scrapy框架結(jié)...
    楊強(qiáng)AT南京閱讀 1,530評論 0 10
  • 前言 爬蟲就是請求網(wǎng)站并提取數(shù)據(jù)的自動(dòng)化程序,其中請求,提取,自動(dòng)化是爬蟲的關(guān)鍵。Python作為一款出色的膠水語...
    王奧OX閱讀 3,636評論 1 8
  • 王愛玲洛陽焦點(diǎn)中級(jí)一期第235天分享 昨天晚上跟朋友逛街,買了兩件短袖。其中一件肩部稍微有些緊,因?yàn)轭伾芟矚g,在...
    塵心細(xì)語閱讀 529評論 0 6
  • 《21天韓語無師自通》、《21天java從入門到精通》、《21天養(yǎng)成一好習(xí)慣》每次看到這樣的名字我都想說去它的二十...
    68bed5e7a503閱讀 537評論 7 6
  • 1 如果一個(gè)人內(nèi)心最終的眷戀都已經(jīng)凋謝,那么只能黯然離去,留一顆未冷卻的心。 人不在,心還在。 我的心還在,只是沒...
    鄔小悲閱讀 298評論 0 0

友情鏈接更多精彩內(nèi)容