国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

Scrapy框架使用的基本知識(shí)

2020-02-15 23:18:59
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

scrapy是一個(gè)基于Twisted的異步處理框架,可擴(kuò)展性很強(qiáng)。優(yōu)點(diǎn)此處不再一一贅述。

下面介紹一些概念性知識(shí),幫助大家理解scrapy。

一、數(shù)據(jù)流向

要想熟練掌握這個(gè)框架,一定要明白數(shù)據(jù)的流向是怎么一個(gè)過程。總結(jié)如下:

1.引擎先打開網(wǎng)站,請(qǐng)求url。

2.引擎通過調(diào)度器以Request形式調(diào)度url。

3.引擎請(qǐng)求下一個(gè)url。

4.調(diào)度器將url通過Downloader Middlewares發(fā)送給引擎

5.Downloader 生成response,通過Downloader Middlewares發(fā)送給引擎

6.引擎接收Response 通過spiderMiddleware發(fā)送給spider處理

7.spider處理response

8.引擎將spider處理的item給ItemPipeline 然后將新的Request給調(diào)度器。

二、各個(gè)結(jié)構(gòu)的作用

DownloderMiddleware

調(diào)度器會(huì)從隊(duì)列之中拿出Request發(fā)送給Downloader執(zhí)行下載,這個(gè)過程會(huì)經(jīng)過DownloaderMiddleware的處理。

作用的位置有兩個(gè):

在調(diào)度器調(diào)出Request發(fā)送給Downloader之前。 下載之后生成Response發(fā)送給spider之前。

核心方法有三個(gè):

process_request(request,spider)

Request 到達(dá)Downloader之前,就會(huì)被調(diào)用

參數(shù)介紹:

         request :Request對(duì)象,被處理的Request。          spider:spider對(duì)象,上面被處理的Request對(duì)應(yīng)的spider。

返回值:

1.返回None 調(diào)用別的process_request()方法,直至將Request執(zhí)行得到Response才會(huì)結(jié)束。

2.返回Response對(duì)象,低優(yōu)先級(jí)的process_request()process_exception不調(diào)用。

3.返回request對(duì)象,低優(yōu)先級(jí)的process_request()停止執(zhí)行,返回新的Request

process_response(request,response,spider)

作用位置:

Downloader 執(zhí)行Request之后,會(huì)得到對(duì)應(yīng)的Reponse ,scrapy 引擎會(huì)將Response發(fā)送給spider進(jìn)行解析,發(fā)送之前調(diào)用這個(gè)方法對(duì)Response進(jìn)行處理。

返回值的情況:

1.返回Request低優(yōu)先級(jí)的process_respons()不調(diào)用。

2.返回response低優(yōu)先級(jí)的process_respons()繼續(xù)調(diào)用。

process_exception(request,exception,spider)

此函數(shù)主要是用來(lái)處理異常的。

spiderMiddleware

作用位置:

Downloader生成Response之后會(huì)發(fā)送給spider, 在發(fā)送之前,會(huì)經(jīng)過spiderMiddleware處理。

核心方法:

process_soider_input(response,spider)

返回值:

1.返回None

 繼續(xù)處理Response,調(diào)用所有的spiderMiddleware,知道spider處理

2.跑出異常

直接調(diào)用Request的errback()方法,使用process_spider_output()處理。

process_spider_output(response,result,spider)

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 区。| 苏州市| 青海省| 田阳县| 响水县| 子长县| 大新县| 昆山市| 德江县| 苍梧县| 靖西县| 巴里| 延津县| 安丘市| 陇南市| 荥经县| 榆中县| 河北区| 麻栗坡县| 葵青区| 利津县| 清涧县| 泸定县| 方城县| 阿拉善右旗| 沂水县| 临安市| 皮山县| 临清市| 碌曲县| 南和县| 余庆县| 开平市| 微博| 顺平县| 襄汾县| 酉阳| 个旧市| 泸定县| 乌兰县| 万年县|