Scrapy AutoThrottle через проксі: слоти та затримка
Тримайте слоти завантаження цільового сайту окремо від маршрутів проксі, а затримку тлумачте як спостережений шлях запиту.
За замовчуванням Scrapy призначає слоти завантаження за доменом URL запиту. Надання запиту HTTP-проксі не перетворює цей URL на ім'я хоста проксі. Тому запити до різних сайтів можуть зберігати різні слоти, поділяючи одного посередника.
AutoThrottle регулює затримку кожного слота за спостереженою затримкою завантаження. Стандартна межа паралельності на домен і мінімальна затримка завантаження досі діють.
Перевірте групування перед зміною алгоритму
Власне middleware може призначити request.meta["download_slot"], перевизначивши звичайний вибір слота. Деякі розширення проксі використовують власне групування. Перегляньте ці налаштування, якщо здається, що непов'язані сайти поділяють один обмежувач.
Навпаки, призначення окремого слота для кожного проксі може дозволити кільком проксі одночасно звертатися до однієї цілі. Це може підірвати обмеження на рівні сайту, яке сканер мав поважати. Виберіть ключ слота відповідно до захищеного ресурсу.
Затримка включає використаний шлях
Scrapy вимірює затримку від надсилання запиту до отримання заголовків HTTP. Запит, що проходить через проксі, може включати в це спостереження затримку черги та пересилання посередника. AutoThrottle не отримує окремого часу обробки лише джерела.
Збільшення паралельності не змусить це вимірювання ізолювати сайт. Тримайте ввічливість до цілі та пропускну здатність проксі окремими межами, коли важливі обидві. Спільному проксі може знадобитися додатковий бюджет паралельності між слотами цілей, при цьому кожна ціль зберігає власну політику темпу.