Proxyadressen ændrer sig i loggen. Destinationen dukker aldrig op i proxyens adgangslog. Tjek, om din middleware overhovedet lader anmodningen nå downloaderen.

I Scopys downloader-middleware betyder det at returnere en Request, at anmodningen genplanlægges. Det betyder ikke »fortsæt med at sende dette objekt med de metadata, jeg netop har ændret«.

For en vælger, der kun vælger en rute, er den vigtige form:

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

Dette uddrag viser den aktuelle hook-form; brug den middleware-grænseflade, som den installerede Scrapy-udgave understøtter. Vælgeren skal returnere et gyldigt endepunkt og håndtere en utilgængelig pulje eksplicit. En offentlig crawl, der tillader offentlige mellemled, kan hente HTTP-kandidater fra HTTP-proxylisten til den returværdi.

At returnere None lader resten af anmodnings-middlewaren og downloaderen fortsætte. At returnere en anden Request er nyttigt, når du bevidst erstatter eller genprøver arbejde, men det kræver en grund og en udgangsbetingelse.

En rotator, der returnerer den samme anmodning hver gang, kan gentagne gange køre sin egen udvælgelseskode uden nogensinde at oprette en forbindelse til destinationen. At hæve timeouts eller åbne flere proxyporte kan ikke reparere den kontrolflowløkke.

Undersøg middleware-indgang, returadfærd og det første faktiske netværksforsøg som separate hændelser. En loglinje, der siger »valgt proxy«, beviser kun, at vælgeren kørte. Den beviser ikke, at en anmodning med det valgte endepunkt blev sendt.

Relaterede artikler