ਪੂਰੀ ਹੋਈ ਪ੍ਰਤੀਕਿਰਿਆ ਨਾਲ ਜੁੜੀ Request ਵਰਤ ਕੇ ਇਸ ਦੇ ਚੁਣੇ ਗਏ ਰਸਤੇ ਦੀ ਜਾਂਚ ਕਰੋ। ਤਿੰਨ ਨਿਰੀਖਣ ਵੱਖਰੇ ਰੱਖੋ:

ਖੇਤਰਅਰਥ
response.request.meta.get('proxy')ਇਸ ਬੇਨਤੀ ਦਾ ਚੁਣਿਆ ਗਿਆ ਪਰਾਕਸੀ URL, ਜੇ ਹੈ
response.ip_addressਡਾਊਨਲੋਡ ਹੈਂਡਲਰ ਵੱਲੋਂ ਦਿੱਤਾ ਪਤਾ, ਸ਼ਾਇਦ None
ਭਰੋਸੇਯੋਗ ਮੰਜ਼ਿਲ ਦੀ ਸਰੋਤ ਰਿਪੋਰਟਉੱਥੇ ਦੇਖਿਆ ਗਿਆ ਜਨਤਕ ਸਰੋਤ

ਕਾਲਬੈਕ ਦੇ ਅੰਦਰ, ਪ੍ਰਮਾਣ ਪੱਤਰ ਵਾਲੇ 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,
)

Scrapy 2.13.3 ਦੇ HTTP/1.1 ਹੈਂਡਲਰ ਵਿੱਚ ਪਤਾ ਪ੍ਰਤੀਕਿਰਿਆ ਦੇ ਕਨੈਕਸ਼ਨ ਪੀਅਰ ਤੋਂ ਆਉਂਦਾ ਹੈ, ਕਿਸੇ ਐਗਜ਼ਿਟ-IP ਸੇਵਾ ਤੋਂ ਨਹੀਂ। ਕੁਝ ਰਸਤੇ, ਸਿਫ਼ਰ-ਲੰਬਾਈ ਵਾਲੀਆਂ ਪ੍ਰਤੀਕਿਰਿਆਵਾਂ ਸਮੇਤ, ਇਸ ਨੂੰ None ਛੱਡ ਸਕਦੇ ਹਨ। ਹੋਰ ਹੈਂਡਲਰ ਇਸ ਨੂੰ ਵੱਖਰੇ ਢੰਗ ਨਾਲ ਭਰ ਸਕਦੇ ਹਨ। None ਆਪਣੇ ਆਪ ਸਿੱਧੀ ਰੂਟਿੰਗ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ।

ਐਗਜ਼ਿਟ ਜਾਂਚ ਲਈ, ਮਨਸ਼ਾ ਕੀਤੀ ਪਰਾਕਸੀ ਨੀਤੀ ਅਧੀਨ ਭਰੋਸੇਯੋਗ ਐਂਡਪੁਆਇੰਟ ਨੂੰ ਪੁੱਛੋ ਅਤੇ ਬੇਨਤੀ ਦੀ ਪਛਾਣ ਨਿਰੀਖਣ ਨਾਲ ਰੱਖੋ। ਘੁੰਮਦਾ ਮਿਡਲਵੇਅਰ ਅਗਲੀ ਜਾਂਚ ਨੂੰ ਦੂਜਾ ਐਂਡਪੁਆਇੰਟ ਦੇ ਸਕਦਾ ਹੈ।

ਰੀਡਾਇਰੈਕਟ ਵੀ ਇੱਕ ਹੋਰ ਬੇਨਤੀ ਬਣਾਉਂਦੇ ਹਨ। ਅੰਤਿਮ ਮੈਟਾਡੇਟਾ ਉਸ ਪੜਾਅ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ; ਪਹਿਲੇ URL ਦੇ ਰਸਤੇ ਦਾ ਸਬੂਤ ਮੰਨਣ ਦੀ ਥਾਂ ਰੀਡਾਇਰੈਕਟ ਇਤਿਹਾਸ ਅਤੇ ਮਿਡਲਵੇਅਰ ਦੀ ਕਿਸੇ ਵੀ ਮੁੜ-ਚੋਣ ਦੀ ਜਾਂਚ ਕਰੋ।

ਸੰਬੰਧਿਤ ਲੇਖ