Читање на прокси крајната точка и IP на врската во Scrapy
Користете ги метаподатоците од барањето за избраниот прокси, третирајте го 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,
)Во обработувачот HTTP/1.1 на Scrapy 2.13.3 адресата доаѓа од партнерот на врската на одговорот, а не од услуга за излезна IP. Некои патеки, вклучително одговори со нулта должина, можат да ја остават None. Други обработувачи можат да ја пополнат поинаку. None само по себе не докажува директно рутирање.
За проверка на излезот прашајте доверлива крајна точка според предвидената прокси политика и чувајте го идентитетот на барањето со набљудувањето. Ротирачкиот middleware може да даде друга крајна точка за подоцнежна проверка.
Пренасочувањата создаваат уште едно барање. Завршните метаподатоци го опишуваат тој степен; прегледајте ја историјата на пренасочувања и секое повторно избирање од middleware, наместо да го сметате за доказ за рутата на првиот URL.