Puhverserveri kaudu tehtud GET võib jõuda serverini ja seejärel järgida ümbersuunamisi, kuni lõplik tõrge varjab esimese vastuse. Paljasta see esialgne vastus diagnoosimiseks:

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],
    },
)

Ajasta see päring ämbliku olemasoleva käivitamis- või callback-vooga. Lubatud avaliku lehe kontrollimiseks pakub HTTP-puhverserverite loend kandidaate päringu puhverserveri URL-ile. inspect_redirect peaks salvestama vastuse oleku ja Location-päise, selle asemel et seda uuesti pimesi järgida.

dont_redirect peatab selle päringu automaatse ümbersuunamise. handle_httpstatus_list lubab nimetatud olekutel jõuda callbackini, selle asemel et HTTP-vigade filtreerimine need tagasi lükkaks. Seaded puudutavad middleware'i erinevaid vastutusi.

Kontrolli, mida ümbersuunamine valib: kavandatud kanooniline URL, teistsugune skeem või hostinimi, sisselogimisleht või korduv tsükkel. Pärast edukat transporti saadud 302 on teistsugune tähelepanek kui puhverserveri ühenduse avamise ebaõnnestumine.

Kui tavaline ümbersuunamiste käsitlemine taastatakse, näitab Scrapy vastuse päringu metaandmetes redirect_urls ja redirect_reasons. Need võivad säilitada tee lõpptulemuseni, jätmata ümbersuunamisi kogu roomamise ajaks välja lülitatuks.

Lõplik vastus ei ole automaatselt leht, mida rakendus kavatses. Hoia sihtkoht ja vastuse sisu koos marsruutimise diagnoosiga.

Seotud artiklid