Leer el endpoint del proxy y la IP de conexión de Scrapy
Use los metadatos de la solicitud para el proxy seleccionado, trate response.ip_address como información del par proporcionada por el controlador y verifique la IP de salida en el destino.
Use la Request asociada a la respuesta completada cuando inspeccione su ruta seleccionada. Mantenga tres observaciones por separado:
| Campo | Significado |
|---|---|
response.request.meta.get('proxy') | La URL del proxy seleccionado de esta solicitud, cuando existe |
response.ip_address | Dirección proporcionada por el controlador de descargas, posiblemente None |
| Informe de origen de un destino de confianza | El origen público observado allí |
Dentro de una callback, omita las partes de la URL con credenciales en el diagnóstico habitual:
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,
)En el controlador HTTP/1.1 de Scrapy 2.13.3 la dirección proviene del par de la conexión de la respuesta, no de un servicio de IP de salida. Algunas rutas, incluidas las respuestas de longitud cero, pueden dejarla en None. Otros controladores pueden rellenarla de otra forma. None por sí solo no demuestra un enrutamiento directo.
Para comprobar la salida, consulte un endpoint de confianza según la política de proxy prevista y conserve la identidad de la solicitud junto con la observación. Un middleware rotativo puede dar otra dirección a una comprobación posterior.
Las redirecciones también crean otra solicitud. Los metadatos finales describen esa etapa; revise el historial de redirecciones y cualquier nueva selección del middleware en lugar de tomarlo como prueba de la ruta de la primera URL.