Scrapy AutoThrottle välityspalvelimen kautta: aikavälit ja viive
Pidä kohdesivuston latausaikavälit erillään välityspalvelimen reiteistä ja tulkitse viive havaittuna pyyntöpolkuna.
Oletuksena Scrapy jakaa latausaikavälit pyynnön URL-osoitteen verkkotunnuksen mukaan. HTTP-välityspalvelimen antaminen pyynnölle ei muuta tätä URL-osoitetta välityspalvelimen isäntänimeksi. Siksi eri sivustoille tehtävät pyynnöt voivat säilyttää eri aikavälit ja samalla jakaa yhden välittäjän.
AutoThrottle säätää kunkin aikavälin viivettä havaitun latausviiveen perusteella. Vakio verkkotunnuskohtainen rinnakkaisuusraja ja pienin latausviive ovat edelleen voimassa.
Tarkista ryhmittely ennen algoritmin muuttamista
Mukautettu middleware voi määrittää request.meta["download_slot"], ohittaen tavallisen aikavälin valinnan. Jotkin välityspalvelinlaajennukset käyttävät omaa ryhmittelyään. Tarkista nämä asetukset, jos toisiinsa liittymättömät sivustot näyttävät jakavan yhden rajoittimen.
Päinvastoin, eri aikavälin antaminen jokaiselle välityspalvelimelle voi sallia useiden välityspalvelimien ottaa yhteyttä samaan kohteeseen samanaikaisesti. Tämä voi kumota sivustonlaajuisen rajan, jota crawlerin oli tarkoitus noudattaa. Valitse aikavälin avain suojattavan resurssin mukaan.
Viive sisältää käyttämäsi polun
Scrapy mittaa viiveen pyynnön lähettämisestä HTTP-otsakkeiden vastaanottamiseen. Välityspalvelimen kautta kulkeva pyyntö voi sisällyttää tähän havaintoon välittäjän jonotus- ja edelleenlähetysviiveen. AutoThrottle ei saa erillistä vain alkuperän käsittelyaikaa.
Rinnakkaisuuden lisääminen ei voi saada mittausta eristämään sivustoa. Pidä kohteen kohteliaisuus ja välityspalvelimen kapasiteetti erillisinä rajoina, kun molemmat ovat tärkeitä. Jaettu välityspalvelin voi tarvita lisää rinnakkaisuusbudjettia kohdeaikavälien yli, kun taas jokainen kohde säilyttää oman nopeuskäytäntönsä.