Scrapy کے پراکسی اینڈ پوائنٹ اور کنکشن IP کو پڑھنا
منتخب پراکسی کے لیے درخواست کا میٹا ڈیٹا استعمال کریں، response.ip_address کو ہینڈلر کی فراہم کردہ پیر معلومات سمجھیں، اور منزل پر ایگزٹ IP کی تصدیق کریں۔
منتخب شدہ راستے کا جائزہ لینے کے لیے مکمل شدہ جواب سے منسلک Request استعمال کریں۔ تین مشاہدات الگ رکھیں:
| فیلڈ | معنی |
|---|---|
response.request.meta.get('proxy') | اس درخواست کا منتخب پراکسی URL، اگر موجود ہو |
response.ip_address | ڈاؤن لوڈ ہینڈلر کا دیا ہوا پتہ، ممکنہ طور پر None |
| قابلِ اعتماد منزل کی مصادر رپورٹ | وہاں مشاہدہ کردہ عوامی مصدر |
کال بیک کے اندر، اسناد رکھنے والے URL حصوں کو معمول کی تشخیص سے خارج کریں:
from urllib.parse import urlsplit
proxy = response.request.meta.get('proxy')
proxy_host = urlsplit(proxy).hostname if proxy else None
self.logger.info(
'target_host=%s proxy_host=%s peer_ip=%s',
urlsplit(response.url).hostname, proxy_host, response.ip_address,
)Scrapy 2.13.3 کے HTTP/1.1 ہینڈلر میں پتہ جواب کے کنکشن پیر سے آتا ہے، کسی ایگزٹ-IP سروس سے نہیں۔ بعض راستے، بشمول صفر طوالت کے جوابات، اسے None چھوڑ سکتے ہیں۔ دیگر ہینڈلر اسے مختلف طریقے سے بھر سکتے ہیں۔ None بذاتِ خود براہ راست روٹنگ ثابت نہیں کرتا۔
ایگزٹ جانچ کے لیے، مطلوبہ پراکسی پالیسی کے تحت کسی قابلِ اعتماد اینڈ پوائنٹ سے پوچھیں اور درخواست کی شناخت مشاہدے کے ساتھ رکھیں۔ گھومنے والا مڈل ویئر بعد کی جانچ کو دوسرا اینڈ پوائنٹ دے سکتا ہے۔
ری ڈائریکٹ بھی ایک اور درخواست بناتے ہیں۔ حتمی میٹا ڈیٹا اسی مرحلے کی وضاحت کرتا ہے؛ پہلے URL کے راستے کا ثبوت سمجھنے کے بجائے ری ڈائریکٹ کی تاریخ اور مڈل ویئر کے کسی بھی دوبارہ انتخاب کا جائزہ لیں۔