Para suriin ang napiling ruta, gamitin ang Request na naka-attach sa natapos na tugon. Panatilihing hiwalay ang tatlong obserbasyon:

FieldKahulugan
response.request.meta.get('proxy')Ang napiling proxy URL ng kahilingang ito, kapag mayroon
response.ip_addressAddress na ibinigay ng download handler, maaaring None
Ulat ng pinagmulan mula sa pinagkakatiwalaang destinasyonAng pampublikong pinagmulan na naobserbahan doon

Sa loob ng callback, alisin ang mga bahagi ng URL na may kredensyal sa karaniwang diagnostiko:

from urllib.parse import urlsplit

proxy = response.request.meta.get('proxy')
proxy_host = urlsplit(proxy).hostname if proxy else None
self.logger.info(
    'target_host=%s proxy_host=%s peer_ip=%s',
    urlsplit(response.url).hostname, proxy_host, response.ip_address,
)

Sa HTTP/1.1 handler ng Scrapy 2.13.3, galing ang address sa peer ng koneksyon ng tugon, hindi sa isang serbisyo ng exit IP. Ang ilang ruta, kabilang ang mga tugon na may habang sero, ay maaaring mag-iwan nito bilang None. Maaaring punan ito ng ibang handler sa ibang paraan. Hindi nagpapatunay ang None nang mag-isa ng direktang routing.

Para sa pagsusuri ng exit, magtanong sa pinagkakatiwalaang endpoint sa ilalim ng inaasahang patakaran ng proxy at itabi ang pagkakakilanlan ng kahilingan kasama ng obserbasyon. Ang umiikot na middleware ay maaaring magbigay ng ibang endpoint sa susunod na pagsusuri.

Ang mga redirect ay gumagawa rin ng isa pang kahilingan. Inilalarawan ng huling metadata ang yugtong iyon; suriin ang kasaysayan ng redirect at anumang muling pagpili ng middleware sa halip na ituring itong patunay ng ruta ng unang URL.

Kaugnay na mga artikulo