dont_proxy، Scrapy کا proxy فیلڈ صاف نہیں کرتا
اپنی مرضی کے bypass فلیگ کو Scrapy کے بلٹ اِن middleware کے پڑھے جانے والے proxy میٹاڈیٹا کے ساتھ ہم آہنگ کریں۔
ایک request حسبِ ضرورت proxy middleware سے دستبردار ہو سکتی ہے اور پھر بھی اپنے میٹاڈیٹا میں فعال proxy URL رکھ سکتی ہے۔ Scrapy کا بلٹ اِن HttpProxyMiddleware meta["proxy"] پڑھتا ہے؛ یہ عمومی dont_proxy فلیگ کی تشریح نہیں کرتا۔
ایسی request کے لیے جو سیدھا جانا مقصود ہو، واضح طور پر سیٹ کریں:
request.meta["proxy"] = None
واضح None بلٹ اِن middleware کو اس request کے لیے اپنی ماحول کی ترتیبات سے proxy منتخب کرنے سے روکتا ہے۔ صرف کلید حذف کرنے سے یہ خودکار انتخاب پھر اجازت پا جاتا ہے۔
اگر کوئی اور نصب شدہ middleware dont_proxy استعمال کرتا ہے تو وہ فلیگ اس کے دستاویزی مقصد کے لیے بھی برقرار رکھیں۔ middleware کی ترتیب ایسی بنائیں کہ بعد کا کوئی جزو دوبارہ proxy URL تفویض نہ کرے۔ آخری ایسے جزو کے بعد میٹاڈیٹا کا معائنہ کریں جو راستہ منتخب کر سکتا ہو۔
اپنی مرضی کا bypass فلیگ سیٹ کرنے کے بعد 407 آنا باقی ماندہ proxy راستے کے مطابق ہے، لیکن صرف اسٹیٹس یہ نہیں بتاتا کہ اسے کس middleware نے منتخب کیا۔ یہ فرض کرنے کے بجائے کہ تمام اجزا ایک ہی دستبرداری کی اصطلاحات رکھتے ہیں، اس request کی کارروائی کے دوران مؤثر proxy فیلڈ کا پیچھا کریں۔