Таңдалған маршрутты қараған кезде аяқталған жауапқа тіркелген 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,
)

Scrapy 2.13.3-тің HTTP/1.1 өңдеушісінде мекенжай жауап қосылымының әріптесінен келеді, шығу IP қызметінен емес. Кейбір жолдар, соның ішінде ұзындығы нөл жауаптар, оны None күйінде қалдыруы мүмкін. Басқа өңдеушілер оны басқаша толтыруы мүмкін. None өздігінен тікелей маршруттауды дәлелдемейді.

Шығуды тексеру үшін көзделген прокси саясаты шеңберінде сенімді соңғы нүктеден сұраңыз және сұраныс сәйкестігін бақылаумен бірге сақтаңыз. Айналмалы middleware кейінгі тексеруге басқа соңғы нүкте бере алады.

Қайта бағыттаулар тағы бір сұраныс жасайды. Соңғы метадеректер сол кезеңді сипаттайды; оны бірінші URL маршрутының дәлелі деп санаудың орнына қайта бағыттау тарихын және middleware-тің кез келген қайта таңдауын қарап шығыңыз.

Қатысты мақалалар