欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2018年10月21日 10:51:27   作者:回憶不說(shuō)話  
今天小編就為大家分享一篇關(guān)于Scrapy框架使用的基本知識(shí),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

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

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

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

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

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

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

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

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

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

6.引擎接收Response 通過(guò)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è)過(guò)程會(huì)經(jīng)過(guò)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)過(guò)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)

當(dāng)spider處理Response返回結(jié)果時(shí),被調(diào)用。

process_spider_exception(response,exception,spider)

返回值:none

繼續(xù)處理response,返回一個(gè)可迭代對(duì)象,process_spider_output()方法被調(diào)用。

process_start_request(start_requests,spider)

spider啟動(dòng)的Request為參數(shù)被調(diào)用,必須返回request。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • python3使用PyMysql連接mysql數(shù)據(jù)庫(kù)實(shí)例

    python3使用PyMysql連接mysql數(shù)據(jù)庫(kù)實(shí)例

    本篇文章主要介紹了python3使用PyMysql連接mysql數(shù)據(jù)庫(kù)實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • Django import export實(shí)現(xiàn)數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出方式

    Django import export實(shí)現(xiàn)數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出方式

    這篇文章主要介紹了Django import export實(shí)現(xiàn)數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • 詳解Python 重學(xué)requests發(fā)起請(qǐng)求的基本方式

    詳解Python 重學(xué)requests發(fā)起請(qǐng)求的基本方式

    這篇文章主要介紹了詳解Python 重學(xué)requests發(fā)起請(qǐng)求的基本方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 詳解如何使用python實(shí)現(xiàn)猜數(shù)字游戲

    詳解如何使用python實(shí)現(xiàn)猜數(shù)字游戲

    “猜數(shù)字”游戲是一款簡(jiǎn)單而有趣的小游戲,玩家需要在給定的范圍內(nèi)猜出一個(gè)由計(jì)算機(jī)隨機(jī)生成的數(shù)字,本文將使用Python語(yǔ)言來(lái)實(shí)現(xiàn)這款游戲,并詳細(xì)介紹其實(shí)現(xiàn)過(guò)程,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-04-04
  • Django顯示可視化圖表的實(shí)踐

    Django顯示可視化圖表的實(shí)踐

    這篇文章主要介紹了Django顯示可視化圖表的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Python 可迭代對(duì)象 iterable的具體使用

    Python 可迭代對(duì)象 iterable的具體使用

    本文主要介紹了Python可迭代對(duì)象iterable,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Python元組定義及集合的使用

    Python元組定義及集合的使用

    這篇文章主要介紹了Python元組定義及集合的使用,元組是Python中的一個(gè)內(nèi)置的數(shù)據(jù)結(jié)構(gòu),它是一個(gè)不可變的序列,所謂的不可變序列就是不可以進(jìn)行增刪改的操作
    2022-07-07
  • python+opencv實(shí)現(xiàn)高斯平滑濾波

    python+opencv實(shí)現(xiàn)高斯平滑濾波

    這篇文章主要為大家詳細(xì)介紹了python+opencv實(shí)現(xiàn)高斯平滑濾波,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • python面試題小結(jié)附答案實(shí)例代碼

    python面試題小結(jié)附答案實(shí)例代碼

    這篇文章主要介紹了python面試題小結(jié),本文通過(guò)實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • Python操作MySQL數(shù)據(jù)庫(kù)9個(gè)實(shí)用實(shí)例

    Python操作MySQL數(shù)據(jù)庫(kù)9個(gè)實(shí)用實(shí)例

    這篇文章主要介紹了Python操作MySQL數(shù)據(jù)庫(kù)9個(gè)實(shí)用實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-12-12

最新評(píng)論