Pagbasa ng proxy endpoint at connection IP ng Scrapy
Gamitin ang metadata ng kahilingan para sa napiling proxy, ituring ang response.ip_address bilang impormasyong peer na ibinigay ng handler, at i-verify ang exit IP sa destinasyon.
Para suriin ang napiling ruta, gamitin ang Request na naka-attach sa natapos na tugon. Panatilihing hiwalay ang tatlong obserbasyon:
| Field | Kahulugan |
|---|---|
response.request.meta.get('proxy') | Ang napiling proxy URL ng kahilingang ito, kapag mayroon |
response.ip_address | Address na ibinigay ng download handler, maaaring None |
| Ulat ng pinagmulan mula sa pinagkakatiwalaang destinasyon | Ang 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.