Por defecto, Scrapy asigna os slots de descarga a partir do dominio do URL da solicitude. Darlle un proxy HTTP a unha solicitude non converte ese URL no nome de host do proxy. Por iso, as solicitudes a sitios distintos poden conservar slots distintos mentres comparten un mesmo intermediario.

AutoThrottle axusta o atraso de cada slot usando a latencia de descarga observada. O límite estándar de concorrencia por dominio e o atraso mínimo de descarga seguen aplicándose.

Comprobe a agrupación antes de cambiar o algoritmo

Un middleware personalizado pode asignar request.meta["download_slot"], substituíndo a selección normal de slot. Algunhas extensións de proxy usan a súa propia agrupación. Revise eses axustes se sitios non relacionados parecen compartir un mesmo limitador.

Ao revés, asignar un slot distinto para cada proxy pode permitir que varios proxies contacten o mesmo obxectivo á vez. Iso pode vulnerar un límite de todo o sitio que o rastrexador debía respectar. Escolla a clave de slot segundo o recurso que se protexe.

O atraso inclúe a ruta que utilizou

Scrapy mide a latencia desde o envío da solicitude ata a recepción das cabeceiras HTTP. Unha solicitude transportada por un proxy pode incluír nesa observación o atraso de cola e reenvío do intermediario. AutoThrottle non obtén un tempo de procesamento separado só da orixe.

Aumentar a concorrencia non pode facer que esa medición illase o sitio web. Manteña a cortesía co obxectivo e a capacidade do proxy como límites separados cando ambos importan. Un proxy compartido pode necesitar un orzamento de concorrencia adicional entre os slots dos obxectivos, mentres que cada obxectivo conserva a súa propia política de ritmo.

Artigos relacionados