چرا هدر خروج ProxyMesh ممکن است در Scrapy ناپدید شود
ProxyMesh میتواند فراداده مسیریابی را روی CONNECT بفرستد، پیش از آنکه Scrapy پاسخ رمزنگاریشده وبسایت را دریافت کند. مرحلهای از پاسخ را بررسی کنید که واقعاً آن را حمل میکند.
نبودِ X-ProxyMesh-IP در callback مبتنی بر HTTPS در Scrapy اثبات مسیریابی مستقیم نیست. در HTTPS تونلشده، ProxyMesh هدرهای مسیریابی را روی پاسخ CONNECT میگذارد؛ پاسخ بعدی وبسایت داخل TLS است و آن فرادادههای قبلی را بهطور خودکار شامل نمیشود.
هر جا هدر در callback نمایان است، آن را بهصورت شرطی بخوانید:
exit_ip = response.headers.get(b'X-ProxyMesh-IP')
if exit_ip is not None:
self.logger.info('Reported exit IP: %s', exit_ip.decode('ascii'))
این خروجی است که ارائهدهنده برای آن تبادل گزارش میکند، نه نام میزبان ورودی پیکربندیشده.
اگر به فراداده تونل نیاز دارید، از یکپارچهسازی handler سازگار استفاده کنید که هدرهای CONNECT را آشکار میکند. ProxyMesh یکی را دقیقاً برای همین منظور نگه میدارد؛ نسخه پشتیبانیشده Scrapy و handler دانلود را بررسی کنید. تجزیه در عنکبوت نمیتواند هدرهایی را آشکار کند که لایه انتقال هرگز فراهم نکرده است.
فراداده را به اتصال خودش نسبت دهید. استفاده مجدد از یک تونل برای هر صفحه پاسخ CONNECT دیگری ایجاد نمیکند. برای یک نشانی مبدأ مستقل که مقصد مشاهده میکند، اتصال ورودی همان مقصد را بررسی کنید، نه اینکه هدر ارائهدهنده را آشکارساز کلی IP بدانید.