प्रौद्योगिकी साझेदारी

【Scrapy】Scrapy middleware स्तर सेटिंग नियम

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


कस्यापि सुन्दरस्य कथायाः नायकस्य भूमिकां पुनः सुखेन कर्तुं अनुमन्यताम्
यस्य प्रेमिकायाः ​​सह गतवर्षेषु स्वप्नानि साझां कृतवन्तः तस्य भूमिकां कुरुत
अस्तु प्रियं भवामः यः पुनः प्रेमाश्रुपातं न करोति
पूर्ववत् दृश्यानि इति अभिनयं कुर्वन्
सुन्दरकथायाः नायकस्य भूमिकां पुनः निर्वहन्तु
यस्य प्रेमिकायाः ​​सह गतवर्षेषु स्वप्नानि साझां कृतवन्तः तस्य भूमिकां कुरुत
अबोधोऽपि त्वं रात्रौ विलम्बेन एकाकी असि
भवतः मौनस्वेटरं धारय यथा अहं भवतः समीपे अस्मि
                     🎵 陈慧娴《傻女》


स्क्रैपी एकः शक्तिशाली क्रॉलर-रूपरेखा अस्ति । मिडिलवेयरः पूर्व-उत्तर-प्रक्रियाकरण-अनुरोधानाम् प्रतिक्रियाणां च तन्त्रं प्रदाति, यत् उपयोक्तारः कोर-सङ्केतं परिवर्तनं विना क्रॉलरस्य कार्यक्षमतां वर्धयितुं शक्नुवन्ति

Scrapy इत्यस्मिन् मध्यमवेयरस्य निष्पादनस्य क्रमः तेषां "प्राथमिकता" इत्यनेन निर्धारितः भवति । मध्यवेयरस्य पदानुक्रमं अवगत्य सम्यक् सेट् करणं कुशलं, परिपालनीयं च क्रॉलरं निर्मातुं महत्त्वपूर्णम् अस्ति ।

मिडिलवेयर इति किम् ?

Middleware Scrapy इत्यस्मिन् एकः हुकः अस्ति यः उपयोक्तृभ्यः अनुरोधानाम् प्रतिक्रियाणां च संसाधनकाले कस्टम् कोड् निष्पादयितुं शक्नोति । मिडिलवेयरः द्वयोः वर्गयोः विभक्तः अस्ति : १.

  • Downloader Middleware: डाउनलोडर-सम्बद्धानि अनुरोधाः प्रतिक्रियाश्च सम्पादयति ।
  • स्पाइडर मिडिलवेयर: स्पाइडर-सम्बद्धं निवेशं निर्गमं च सम्पादयति ।

मिडिलवेयर स्तर

मध्यवेयरस्य स्तरः तेषां निष्पादनस्य क्रमं निर्धारयति । Scrapy इत्यनेन मिडिलवेयरस्य स्तरं प्रतिनिधितुं पूर्णाङ्कमूल्यं उपयुज्यते ।

  • डाउनलोडर मिडिलवेयर
    Downloader middleware Scrapy इत्यस्य downloader इत्यस्य इञ्जिनस्य च मध्ये उपविशति । अत्र उदाहरणं विन्यासः अस्ति :
DOWNLOADER_MIDDLEWARES = {
    'myproject.middlewares.CustomDownloaderMiddleware': 543,
    'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 400,
    'scrapy.downloadermiddlewares.retry.RetryMiddleware': 500,
}
  • 1
  • 2
  • 3
  • 4
  • 5

उपरिष्टाद् विन्यासे : १.

CustomDownloaderMiddleware 的等级为 543
UserAgentMiddleware 的等级为 400
RetryMiddleware 的等级为 500
  • 1
  • 2
  • 3

निष्पादनक्रमः यथा भवति ।

UserAgentMiddleware(400)
RetryMiddleware(500)
CustomDownloaderMiddleware(543)
  • 1
  • 2
  • 3

अनुरोधाः इञ्जिनात् उत्पद्यन्ते, निम्नस्तरीयमध्यमवेयरद्वारा गच्छन्ति, अन्ते च डाउनलोडरपर्यन्तं प्राप्नुवन्ति । यदा प्रतिक्रिया डाउनलोडरतः आगच्छति तदा प्रथमं उच्चस्तरीयमध्यमवेयरद्वारा गच्छति अन्ते च इञ्जिनं प्राप्नोति ।

स्पाइडर मिडिलवेयर

क्रॉलर मध्यवर्ती इञ्जिनस्य क्रॉलरस्य च मध्ये स्थितम् अस्ति । अत्र उदाहरणं विन्यासः अस्ति :

SPIDER_MIDDLEWARES = {
    'myproject.middlewares.CustomSpiderMiddleware': 543,
    'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50,
    'scrapy.spidermiddlewares.offsite.OffsiteMiddleware': 500,
}
  • 1
  • 2
  • 3
  • 4
  • 5

उपरिष्टाद् विन्यासे : १.

CustomSpiderMiddleware 的等级为 543
HttpErrorMiddleware 的等级为 50
OffsiteMiddleware 的等级为 500
  • 1
  • 2
  • 3

निष्पादनक्रमः यथा भवति ।

HttpErrorMiddleware(50)
OffsiteMiddleware(500)
CustomSpiderMiddleware(543)
  • 1
  • 2
  • 3

अनुरोधाः इञ्जिनात् उत्पद्यन्ते, निम्नस्तरीयमध्यमवेयरद्वारा गच्छन्ति, अन्ते च क्रॉलरं प्राप्नुवन्ति । यदा प्रतिक्रिया क्रॉलरतः आगच्छति तदा प्रथमं उच्चस्तरीयमध्यमवेयरं गत्वा अन्ते इञ्जिनं प्राप्नोति ।

मिडिलवेयरस्य स्तरं कथं सेट् कर्तव्यम्

मिडलवेयरस्य स्तरं सेट् कर्तुं भवद्भिः Scrapy इत्यस्य विन्याससञ्चिका settings.py इत्यस्मिन् तत्सम्बद्धं शब्दकोशं परिभाषितव्यं तथा च मिडलवेयरस्य मार्गः स्तरः च निर्दिष्टव्यः उदाहरणतया:

DOWNLOADER_MIDDLEWARES = {
    'myproject.middlewares.CustomDownloaderMiddleware': 543,
    'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 400,
}

SPIDER_MIDDLEWARES = {
    'myproject.middlewares.CustomSpiderMiddleware': 543,
    'scrapy.spidermiddlewares.httperror.HttpErrorMiddleware': 50,
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

अस्मिन् उदाहरणे वयं एकं डाउनलोडर मिडलवेयर CustomDownloaderMiddleware तथा च क्रॉलर मिडलवेयर CustomSpiderMiddleware परिभाषयामः, तेषां स्तरं च क्रमशः 543 इति सेट् कुर्मः ।

सामान्यं मिडिलवेयरं तेषां पूर्वनिर्धारितस्तरं च

Scrapy इत्यनेन बहवः अन्तःनिर्मिताः मध्यवर्तीः प्रदाति, प्रत्येकस्य पूर्वनिर्धारितस्तरः भवति । अत्र केचन सामान्याः डाउनलोडर-मध्यम-वेयराः तेषां पूर्वनिर्धारित-स्तराः च सन्ति ।

UserAgentMiddleware: 400
RetryMiddleware: 500
RedirectMiddleware: 600
CookiesMiddleware: 700
  • 1
  • 2
  • 3
  • 4

क्रॉलर मिडिलवेयरस्य कृते सामान्यानि सन्ति-

HttpErrorMiddleware: 50
OffsiteMiddleware: 500
RefererMiddleware: 700
  • 1
  • 2
  • 3

उपसंहारे

Middleware Scrapy framework इत्यस्मिन् एकं शक्तिशाली विशेषता अस्ति middleware इत्यस्य स्तरं सम्यक् सेट् कृत्वा, भवान् अनुरोधानाम् प्रतिक्रियाणां च संसाधनं सूक्ष्मतया नियन्त्रयितुं शक्नोति । मिडलवेयरस्य स्तरनिर्धारणनियमानाम् अवगमनं उपयोगश्च अधिकं लचीलं कुशलं च क्रॉलरप्रणालीं निर्मातुं साहाय्यं कर्तुं शक्नोति ।