Scrapy اس کا پیچھا کرنے سے پہلے ری ڈائریکٹ دکھا سکتا ہے
درخواست میٹاڈیٹا کے ذریعے پراکسی GET کی ابتدائی ری ڈائریکٹ حالت اور Location عارضی طور پر ظاہر کریں، ری ڈائریکٹ کی سنبھال کو HTTP غلطی کی چھانٹی سے الگ رکھتے ہوئے۔
پراکسی GET کسی سرور تک پہنچ کر پھر ری ڈائریکٹ کی پیروی کر سکتا ہے، یہاں تک کہ حتمی ناکامی پہلے جواب کو چھپا دے۔ تشخیص کے لیے وہ ابتدائی جواب ظاہر کریں:
request = scrapy.Request(
'https://service.example/page',
callback=inspect_redirect,
meta={
'proxy': 'http://proxy.example:8080',
'dont_redirect': True,
'handle_httpstatus_list': [301, 302, 303, 307, 308],
},
)
اس درخواست کو اسپائیڈر کے موجودہ start یا callback بہاؤ کے ذریعے شیڈول کریں۔ اجازت شدہ عوامی صفحے کی جانچ کے لیے، HTTP پراکسی فہرست درخواست کے پراکسی URL کے لیے امیدوار فراہم کرتی ہے۔ inspect_redirect کو جواب کی حالت اور Location ہیڈر ریکارڈ کرنا چاہیے، نہ کہ اس کا دوبارہ آنکھ بند کر کے پیچھا کرے۔
dont_redirect اس درخواست کے لیے خودکار ری ڈائریکٹ روکتا ہے۔ handle_httpstatus_list مذکورہ حالتوں کو HTTP غلطی کی چھانٹی سے مسترد ہونے کے بجائے callback تک پہنچنے دیتا ہے۔ یہ ترتیبات middleware کی مختلف ذمہ داریوں سے متعلق ہیں۔
جانچیں کہ ری ڈائریکٹ کیا منتخب کرتا ہے: مطلوبہ کینونیکل URL، مختلف اسکیم یا ہوسٹ نام، لاگ ان صفحہ، یا دہرایا جانے والا چکر۔ کامیاب منتقلی کے بعد موصول ہونے والا 302 پراکسی کنکشن کھولنے میں ناکامی سے مختلف مشاہدہ ہے۔
جب عام ری ڈائریکٹ سنبھال بحال ہو جائے، Scrapy جواب کے درخواست میٹاڈیٹا میں redirect_urls اور redirect_reasons ظاہر کرتا ہے۔ یہ پوری کرال کے دوران ری ڈائریکٹ غیر فعال چھوڑے بغیر حتمی نتیجے تک کا راستہ محفوظ رکھ سکتے ہیں۔
حتمی جواب خود بخود وہ صفحہ نہیں ہوتا جس کا ایپلیکیشن نے ارادہ کیا تھا۔ منزل اور جواب کا مواد روٹنگ کی تشخیص کے ساتھ رکھیں۔