Seçilen rotayı incelerken tamamlanan yanıta bağlı Request'i kullanın. Üç gözlemi ayrı tutun:

AlanAnlam
response.request.meta.get('proxy')Bu isteğin seçilen proxy URL'si, varsa
response.ip_addressİndirme işleyicisinin sağladığı adres, None olabilir
Güvenilir bir hedeften kaynak raporuOrada gözlenen genel kaynak

Bir callback içinde, kimlik bilgisi taşıyan URL parçalarını rutin tanılamadan çıkarın:

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

Scrapy 2.13.3'ün HTTP/1.1 işleyicisinde adres, yanıtın bağlantı eşinden gelir; çıkış IP hizmetinden değil. Bazı yollar, sıfır uzunluklu yanıtlar dahil, onu None bırakabilir. Diğer işleyiciler farklı şekilde doldurabilir. None tek başına doğrudan yönlendirmeyi kanıtlamaz.

Çıkış denetimi için amaçlanan proxy politikası altında güvenilir bir uç noktaya sorun ve isteğin kimliğini gözlemle birlikte saklayın. Dönen ara katman, sonraki bir denetime başka bir uç nokta verebilir.

Yönlendirmeler de başka bir istek oluşturur. Son meta veriler o aşamayı tanımlar; ilk URL'nin rotasının kanıtı saymak yerine yönlendirme geçmişini ve ara katmanın olası yeniden seçimini inceleyin.

İlgili makaleler