Scrapy-välityspalvelinmiddleware: Request ja None paluuarvoina
Palauta hallinta sen jälkeen, kun olet määrittänyt Scrapy-välityspalvelimen, sen sijaan että aikatauluttaisit saman pyynnön vahingossa uudelleen ennen latausta.
Välityspalvelimen osoite muuttuu lokissa. Kohde ei koskaan ilmesty välityspalvelimen käyttölokiin. Tarkista, päästääkö middleware-pyynnön ylipäätään lataajalle.
Scopyn lataajan middleware-ohjelmistossa Requestin palauttaminen tarkoittaa kyseisen pyynnön uudelleenaikatauluttamista. Se ei tarkoita ”jatka tämän objektin lähettämistä juuri muuttamillani metatiedoilla”.
Valitsimelle, joka valitsee vain reitin, tärkeä muoto on:
def process_request(self, request):
request.meta['proxy'] = self.choose_proxy()
return None
Tämä katkelma näyttää nykyisen koukun muodon; käytä middleware-rajapintaa, jota asennettu Scrapy-versio tukee. Valitsimen on palautettava kelvollinen päätepiste ja käsiteltävä käyttökelvoton pooli nimenomaisesti. Julkinen ryömintä, joka sallii julkiset välittäjät, voi ottaa HTTP-ehdokkaita HTTP-välityspalvelinluettelosta kyseistä paluuarvoa varten.
Nonein palauttaminen antaa muun pyyntömiddlewaren ja lataajan jatkaa. Toisen Requestin palauttaminen on hyödyllistä, kun korvaat tai yrität työtä tarkoituksella uudelleen, mutta se tarvitsee syyn ja poistumisehdon.
Kierto, joka palauttaa saman pyynnön joka kerta, voi ajaa omaa valintakoodiaan toistuvasti koskaan muodostamatta yhteyttä kohteeseen. Aikakatkaisujen nostaminen tai useampien välityspalvelinporttien avaaminen ei korjaa tuota ohjausvuon silmukkaa.
Tarkastele middlewareen saapumista, paluukäyttäytymistä ja ensimmäistä todellista verkkoyritystä erillisinä tapahtumina. Lokirivi ”välityspalvelin valittu” todistaa vain, että valitsin suoritettiin. Se ei todista, että pyyntö valitulla päätepisteellä lähetettiin.