Scrapy прокси соңғы нүктесін және қосылым IP-ін оқу
Таңдалған прокси үшін сұраныс метадеректерін пайдаланыңыз, response.ip_address мәнін өңдеуші берген әріптес ақпараты ретінде қарастырыңыз және мақсатта шығу IP-ін тексеріңіз.
Таңдалған маршрутты қараған кезде аяқталған жауапқа тіркелген 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-тің кез келген қайта таңдауын қарап шығыңыз.