Када прегледате изабрану руту, користите Request повезан са завршеним одговором. Држите три запажања одвојено:

ПољеЗначење
response.request.meta.get('proxy')Изабрани прокси URL овог захтева, ако постоји
response.ip_addressАдреса коју даје хендлер за преузимање, могуће None
Извештај извора са поузданог одредиштаЈавни извор забележен тамо

Унутар callback-а изоставите делове URL-а са акредитивима из рутинске дијагностике:

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

У HTTP/1.1 хендлеру Scrapy-ја 2.13.3 адреса долази од партнера везе одговора, а не од сервиса за излазну IP. Неке путање, укључујући одговоре нулте дужине, могу је оставити None. Други хендлери могу је попунити другачије. None сам по себи не доказује директно рутирање.

За проверу излаза питајте поуздану крајњу тачку према предвиђеној прокси политици и сачувајте идентитет захтева уз запажање. Ротирајући middleware може дати каснијој провери другу крајњу тачку.

Преусмеравања стварају још један захтев. Завршни метаподаци описују ту фазу; прегледајте историју преусмеравања и сваки поновни избор middleware-а уместо да то сматрате доказом руте првог URL-а.

Повезани чланци