Proxy GET može doći do poslužitelja i zatim slijediti preusmjeravanja sve dok konačni neuspjeh ne sakrije prvi odgovor. Izložite taj početni odgovor radi dijagnostike:

request = scrapy.Request(
    'https://service.example/page',
    callback=inspect_redirect,
    meta={
        'proxy': 'http://proxy.example:8080',
        'dont_redirect': True,
        'handle_httpstatus_list': [301, 302, 303, 307, 308],
    },
)

Zakažite ovaj zahtjev kroz postojeći tok pokretanja ili callback pauka. Za dopuštenu provjeru javne stranice popis HTTP proxyja nudi kandidate za proxy URL zahtjeva. inspect_redirect treba zabilježiti status odgovora i zaglavlje Location umjesto da ga ponovno slijepo slijedi.

dont_redirect zaustavlja automatsko preusmjeravanje za ovaj zahtjev. handle_httpstatus_list omogućuje navedenim statusima da dođu do callbacka umjesto da ih filtrira HTTP pogreška. Postavke se odnose na različite odgovornosti middlewarea.

Provjerite što preusmjeravanje odabire: željeni kanonski URL, drugu shemu ili naziv hosta, stranicu za prijavu ili ciklus koji se ponavlja. 302 primljen nakon uspješnog prijenosa različito je zapažanje od neuspjeha otvaranja proxy veze.

Kada se normalno rukovanje preusmjeravanjima vrati, Scrapy izlaže redirect_urls i redirect_reasons u metapodacima zahtjeva odgovora. Oni mogu sačuvati put do konačnog rezultata bez ostavljanja preusmjeravanja onemogućenih tijekom cijelog crawla.

Konačni odgovor nije automatski stranica koju je aplikacija namjeravala. Čuvajte odredište i sadržaj odgovora uz dijagnostiku usmjeravanja.

Povezani članci