Gall Scrapy ddangos yr ailgyfeiriad cyn ei ddilyn
Datgelwch dros dro statws ailgyfeirio cychwynnol a Location GET trwy brocsi drwy fetadata'r cais, gan gadw trin ailgyfeiriadau ar wahân i hidlo gwallau HTTP.
Gall GET trwy brocsi gyrraedd gweinydd ac yna ddilyn ailgyfeiriadau nes bod y methiant terfynol yn cuddio'r ymateb cyntaf. Datgelwch yr ymateb cychwynnol hwnnw ar gyfer diagnosis:
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],
},
)
Trefnwch y cais hwn drwy lif cychwyn neu callback presennol y pry cop. Ar gyfer prawf tudalen gyhoeddus a ganiateir, mae'r rhestr procsi HTTP yn darparu ymgeiswyr ar gyfer URL procsi'r cais. Dylai inspect_redirect gofnodi statws yr ymateb a'r pennawd Location yn lle ei ddilyn eto'n ddall.
Mae dont_redirect yn atal ailgyfeirio awtomatig ar gyfer y cais hwn. Mae handle_httpstatus_list yn gadael i'r statysau a enwir gyrraedd y callback yn lle cael eu gwrthod gan hidlo gwallau HTTP. Mae'r gosodiadau'n ymwneud â chyfrifoldebau middleware gwahanol.
Gwiriwch beth mae'r ailgyfeiriad yn ei ddewis: URL canonig a fwriadwyd, cynllun neu enw gwesteiwr gwahanol, tudalen mewngofnodi, neu gylch sy'n ailadrodd. Mae 302 a geir ar ôl cludo llwyddiannus yn arsylwi gwahanol i fethu ag agor y cysylltiad procsi.
Pan adferir trin ailgyfeiriadau arferol, mae Scrapy yn datgelu redirect_urls a redirect_reasons ym metadata cais yr ymateb. Gall y rhain gadw'r llwybr tuag at ganlyniad terfynol heb adael ailgyfeiriadau'n anabl ar gyfer y crwydro cyfan.
Nid yw ymateb terfynol yn awtomatig y dudalen a fwriadwyd gan y rhaglen. Cadwch y gyrchfan a chynnwys yr ymateb gyda diagnosis y llwybro.