L-indirizz tal-proxy jinbidel fil-log. Id-destinazzjoni qatt ma tidher fil-log tal-aċċess tal-proxy. Iċċekkja jekk il-middleware tiegħek hux qed iħalli t-talba tasal għand id-downloader.

Fil-middleware tad-downloader ta' Scrapy, li tirritorna Request tfisser li terġa' tiskeda dik it-talba. Ma tfissirx “kompli ibgħat dan l-oġġett bil-metadata li għadek kif biddilt”.

Għal selettur li jagħżel biss rotta, il-forma importanti hi:

def process_request(self, request):
    request.meta['proxy'] = self.choose_proxy()
    return None

Dan il-framment juri l-forma attwali tal-hook; uża l-interface tal-middleware li tappoġġja l-verżjoni ta' Scrapy installata. Is-selettur irid jirritorna punt tat-tmiem validu u jittratta b'mod espliċitu pool mhux disponibbli. Crawl pubbliku li jippermetti intermedjarji pubbliċi jista' jiġbed kandidati HTTP mil-lista tal-proxy HTTP għal dak il-valur tar-ritorn.

Li tirritorna None iħalli l-bqija tal-middleware tat-talbiet u d-downloader jipproċedu. Li tirritorna Request ieħor hu utli meta intenzjonalment tissostitwixxi jew terġa' tipprova xogħol, iżda jeħtieġ raġuni u kundizzjoni tal-ħruġ.

Rotatur li jirritorna l-istess talba kull darba jista' jmexxi ripetutament il-kodiċi tal-għażla tiegħu mingħajr qatt ma jagħmel konnessjoni mad-destinazzjoni. Iż-żieda tat-timeouts jew il-ftuħ ta' aktar portijiet tal-proxy ma jistgħux isewwu dak iċ-ċiklu tal-fluss tal-kontroll.

Eżamina d-dħul fil-middleware, l-imġiba tar-ritorn u l-ewwel tentattiv reali tan-netwerk bħala avvenimenti separati. Linja tal-log li tgħid “proxy magħżul” tipprova biss li s-selettur tħaddem. Ma tipprovax li ntbghatet talba bil-punt tat-tmiem magħżul.

Artikli relatati