کوزهٔ کوکی Scrapy به یک نشست تعلق دارد، نه بهطور خودکار به یک پروکسی
وقتی چند جریان کاری پروکسی یک عنکبوت را به اشتراک میگذارند، هویت صریح کوزهٔ کوکی را انتخاب کنید و آن هویت را به درخواستهای بعدی منتقل کنید.
تغییر پروکسی، کوکیهای عنکبوت را خودکار تغییر نمیدهد. این میتواند برای یک نشست پیوسته مفید باشد و وقتی چند نشست مستقل یک عنکبوت را شریک میشوند غافلگیرکننده باشد.
میانافزار کوکی Scrapy از کوزههای جداگانهای پشتیبانی میکند که با فرادادهٔ cookiejar درخواست انتخاب میشوند. به آن کلید همان هویتی را بدهید که واقعاً میخواهید نگه دارید:
yield scrapy.Request(
'https://example.com/start',
meta={'proxy': selected_proxy, 'cookiejar': 'workflow-17'},
)
نقطهٔ پایانی و کلید کوزه دو انتخاب مستقلاند. یک خزش عمومی تأییدنشده میتواند نقطهٔ پایانی HTTP برگزیدهٔ خود را از فهرست پروکسی HTTP بگیرد، آنجا که این مسیر مجاز است؛ جریان کاری همچنان مالک کلید کوزه است. درخواست بعدی که باید در این نشست بماند به همان کلید کوزه نیاز دارد؛ فراداده بهطور خودکار به هر درخواست تازهای که میسازید نمیچسبد. بهجای کپی کورکورانهٔ همهٔ فرادادههای میانافزار، همان فیلدهای مشخصی را که جریان کاری لازم دارد منتقل کنید.
استفاده از نشانی پروکسی بهعنوان کلید کوزه فقط یک سیاست است
آن میانبر، وضعیت را بر پایهٔ نقطهٔ پایانی گروهبندی میکند. لزوماً آن را بر پایهٔ شخص، حساب یا خروجی عمومی گروهبندی نمیکند. یک نقطهٔ پایانی ارائهدهنده میتواند خروجیها را بچرخاند و چند حساب میتوانند از همان نقطهٔ پایانی استفاده کنند.
برای جریان کاری مجاز که به وضعیت پایدار نیاز دارد، شناسهٔ حساب/نشست، شناسهٔ کوزه و مسیر برگزیده را جداگانه ثبت کنید. اگر تصمیم گرفتید مسیر را در میانهٔ کار عوض کنید، دربارهٔ اینکه با نشست برنامه چه باید بشود هم تصمیم بگیرید.
کوزههای جداگانه از اشتراک تصادفی کوکی میان گروههایی که تعریف کردهاید جلوگیری میکنند. اما تضمین نمیکنند که یک مقصد نتواند دو درخواست را از راه یک حساب یا دیگر دادهٔ برنامه به هم مرتبط کند.
اگر پس از تغییر IPها صفحهٔ نادرست باقی ماند، پیش از پاککردن همهٔ کوکیها یا جایگزینی کل استخر پروکسی بررسی کنید کدام کوزه درخواست را فرستاده است. وضعیت نگهداشتهشده میتواند صفحه را کاملاً خوب توضیح دهد.