Par défaut, Scrapy attribue les slots de téléchargement d'après le domaine de l'URL de la requête. Donner un proxy HTTP à une requête ne transforme pas cette URL en nom d'hôte du proxy. Les requêtes vers des sites différents peuvent donc conserver des slots différents tout en partageant un même intermédiaire.

AutoThrottle ajuste le délai de chaque slot à partir de la latence de téléchargement observée. La limite standard de concurrence par domaine et le délai minimal de téléchargement s'appliquent toujours.

Vérifiez le regroupement avant de changer l'algorithme

Un middleware personnalisé peut attribuer request.meta["download_slot"], ce qui remplace la sélection normale du slot. Certaines extensions de proxy utilisent leur propre regroupement. Inspectez ces réglages si des sites sans rapport semblent partager un même limiteur.

À l'inverse, attribuer un slot différent à chaque proxy peut permettre à plusieurs proxys de contacter la même cible simultanément. Cela peut contourner une limite à l'échelle du site que le crawler était censé respecter. Choisissez la clé de slot selon la ressource protégée.

Le délai inclut le chemin emprunté

Scrapy mesure la latence entre l'envoi de la requête et la réception des en-têtes HTTP. Une requête transportée par un proxy peut inclure dans cette observation le délai de mise en file et de transfert de l'intermédiaire. AutoThrottle n'obtient pas de temps de traitement propre à l'origine.

Augmenter la concurrence ne permet pas à cette mesure d'isoler le site. Gardez la politesse envers la cible et la capacité du proxy comme des limites distinctes lorsque les deux comptent. Un proxy partagé peut nécessiter un budget de concurrence supplémentaire entre les slots des cibles, tandis que chaque cible conserve sa propre politique de débit.

Articles similaires