Teknologian jakaminen

【Scrapy】Scrapy-väliohjelmistotason asetussäännöt

2024-07-12

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


Sallikaa minun toistaa onnellisena tietyn kauniin tarinan päähenkilön rooli
Pelaa sen rakastajan roolia, jonka kanssa jaoit unelmasi viime vuosina
Olkaamme rakas, joka ei vuodata enää rakkauden kyyneleitä
Teeskentelee samoja kohtauksia kuin ennenkin
Toista kauniin tarinan päähenkilön rooli
Pelaa sen rakastajan roolia, jonka kanssa jaoit unelmasi viime vuosina
Vaikka et ymmärrä, olet silti yksin myöhään illalla
Käytä hiljaista puseroasi ikään kuin olisin lähelläsi
                     🎵 陈慧娴《傻女》


Scrapy on tehokas indeksointikehys Väliohjelmistoa käyttämällä käyttäjät voivat mukauttaa ja laajentaa indeksointirobotin toimintaa. Väliohjelmisto tarjoaa mekanismin pyyntöjen ja vastausten esi- ja jälkikäsittelyyn, jolloin käyttäjät voivat parantaa indeksointirobotin toimintoja muuttamatta ydinkoodia.

Scrapyssa väliohjelmiston suoritusjärjestys määräytyy niiden "prioriteetti" perusteella. Väliohjelmistojen hierarkian ymmärtäminen ja oikea asettaminen on ratkaisevan tärkeää tehokkaan ja ylläpidettävän indeksointirobotin rakentamisessa.

Mikä on väliohjelmisto?

Middleware on Scrapyn koukku, jonka avulla käyttäjät voivat suorittaa mukautettua koodia käsitellessään pyyntöjä ja vastauksia. Middleware on jaettu kahteen luokkaan:

  • Downloader Middleware: Käsittelee lataajaan liittyviä pyyntöjä ja vastauksia.
  • Spider Middleware: käsittelee hämähäkkiin liittyviä syötteitä ja lähtöjä.

Väliohjelmiston taso

Väliohjelmiston taso määrittää järjestyksen, jossa ne suoritetaan. Scrapy käyttää kokonaislukuarvoa edustamaan väliohjelmiston tasoa, mitä pienempi arvo, sitä aikaisemmin väliohjelmisto suoritetaan.

  • Lataajan väliohjelmisto
    Downloader-väliohjelmisto on Scrapyn latausohjelman ja moottorin välissä. Tässä on esimerkkikokoonpano:
DOWNLOADER_MIDDLEWARES = {
    'myproject.middlewares.CustomDownloaderMiddleware': 543,
    'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 400,
    'scrapy.downloadermiddlewares.retry.RetryMiddleware': 500,
}
  • 1
  • 2
  • 3
  • 4
  • 5

Yllä olevassa kokoonpanossa:

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

Suoritusjärjestys on seuraava:

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

Pyynnöt tulevat moottorista, kulkevat alemman tason väliohjelmiston läpi ja saapuvat lopulta latausohjelmaan. Kun vastaus palaa latausohjelmasta, se kulkee ensin korkeamman tason väliohjelmiston läpi ja lopulta saavuttaa moottorin.

Spider Middleware

Indeksointirobotin väliohjelmisto sijaitsee moottorin ja telaketjun välissä. Tässä on esimerkkikokoonpano:

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

Yllä olevassa kokoonpanossa:

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

Suoritusjärjestys on seuraava:

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

Pyynnöt tulevat moottorista, kulkevat alemman tason väliohjelmiston läpi ja saapuvat lopulta indeksointirobotille. Kun vastaus palaa indeksointirobotilta, se kulkee ensin korkeamman tason väliohjelmiston läpi ja saavuttaa lopulta moottorin.

Kuinka asettaa väliohjelmiston taso

Väliohjelmiston tason asettamiseksi sinun on määritettävä vastaava sanakirja Scrapyn asetustiedostossa settings.py ja määritettävä väliohjelmiston polku ja taso. Esimerkiksi:

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

Tässä esimerkissä määritämme latausohjelman väliohjelmiston CustomDownloaderMiddleware ja indeksointirobotin väliohjelmiston CustomSpiderMiddleware ja asetamme niiden tasolle 543.

Yleiset väliohjelmistot ja niiden oletustasot

Scrapy tarjoaa monia sisäänrakennettuja väliohjelmistoja, joista jokaisella on oletustaso. Tässä on joitain yleisiä latausten väliohjelmistoja ja niiden oletustasoja:

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

Yleisimpiä indeksointirobottien väliohjelmistoja ovat:

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

tiivistettynä

Middleware on tehokas ominaisuus Scrapy-kehyksessä Asettamalla väliohjelmiston tason oikein, voit hallita pyyntöjen ja vastausten käsittelyä. Väliohjelmiston tasoasetussääntöjen ymmärtäminen ja käyttäminen voi auttaa rakentamaan joustavamman ja tehokkaamman indeksointirobottijärjestelmän.