Scrapy AutoThrottle از طریق پروکسی: اسلاتها و تأخیر
اسلاتهای دانلود سایت هدف را از مسیرهای پروکسی جدا نگه دارید و تأخیر را بهعنوان مسیر مشاهدهشدهٔ درخواست تفسیر کنید.
بهطور پیشفرض، Scrapy اسلاتهای دانلود را بر اساس دامنهٔ URL درخواست تخصیص میدهد. دادن یک پروکسی HTTP به درخواست، آن URL را به نام میزبان پروکسی تبدیل نمیکند. بنابراین درخواستها به سایتهای مختلف میتوانند اسلاتهای متفاوت را حفظ کنند در حالی که یک واسطه را به اشتراک میگذارند.
AutoThrottle تأخیر هر اسلات را با استفاده از تأخیر دانلود مشاهدهشده تنظیم میکند. سقف استاندارد همزمانی بهازای هر دامنه و حداقل تأخیر دانلود همچنان اعمال میشوند.
پیش از تغییر الگوریتم، گروهبندی را بررسی کنید
یک میانافزار سفارشی میتواند request.meta["download_slot"] را تخصیص دهد و انتخاب عادی اسلات را نادیده بگیرد. برخی افزونههای پروکسی از گروهبندی خودشان استفاده میکنند. اگر به نظر میرسد سایتهای بیربط یک محدودکننده را شریکاند، آن تنظیمات را بررسی کنید.
در مقابل، تخصیص اسلات متفاوت برای هر پروکسی میتواند باعث شود چند پروکسی همزمان به یک هدف متصل شوند. این ممکن است سقفی در سطح سایت را که خزنده باید رعایت میکرد از بین ببرد. کلید اسلات را بر اساس منبعی که محافظت میشود انتخاب کنید.
تأخیر شامل مسیری است که استفاده کردهاید
Scrapy تأخیر را از زمان ارسال درخواست تا دریافت سرآیندهای HTTP اندازه میگیرد. درخواستی که از پروکسی میگذرد میتواند تأخیر صف و ارسال واسطه را در این مشاهده بگنجاند. AutoThrottle زمان پردازش جداگانهای فقط مربوط به مبدأ به دست نمیآورد.
افزایش همزمانی نمیتواند باعث شود این اندازهگیری سایت را جدا کند. ادب نسبت به هدف و ظرفیت پروکسی را زمانی که هر دو مهماند بهصورت سقفهای جداگانه نگه دارید. یک پروکسی اشتراکی ممکن است به بودجهٔ همزمانی اضافی در اسلاتهای هدف نیاز داشته باشد، در حالی که هر هدف سیاست نرخ خودش را حفظ میکند.