PDF یا تصویر پراکسی کے ذریعے کامیابی سے آ سکتی ہے اور پھر پابندی کی شناخت میں ناکام ہو سکتی ہے۔ Scrapy کا بنیادی Response body بائٹس دکھاتا ہے، لیکن اس کی text خصوصیت “Response content isn't text.” خرابی پیدا کرتی ہے۔

اگر نصب شدہ scrapy-proxy-pool پالیسی بلا شرط response.text تلاش کرتی ہے تو اس پالیسی کو قسم سے واقف ورژن سے بدل دیں:

from scrapy.http import TextResponse
from scrapy_proxy_pool.policy import BanDetectionPolicy

class BinaryAwarePolicy(BanDetectionPolicy):
    def response_is_ban(self, request, response):
        if isinstance(response, TextResponse):
            if self.BANNED_PATTERN.search(response.text):
                return True
        if response.status not in self.NOT_BAN_STATUSES:
            return True
        return response.status == 200 and not response.body

اسے پیکیج کی ایکسٹینشن سیٹنگ کے ذریعے منتخب کریں:

PROXY_POOL_BAN_POLICY = "myproject.policy.BinaryAwarePolicy"

یہ پالیسی کے حالت اور خالی جسم کے قواعد برقرار رکھتا ہے اور متن کی تلاش کو صرف ان جوابات تک محدود کرتا ہے جو اسے سہارا دیتے ہیں۔ ورثے میں ملی استثنا پالیسی بھی دستیاب رہتی ہے۔

باقی قواعد کا بھی ایپلیکیشن کے لیے جائزہ لیں: جان بوجھ کر خالی 200 جواب یا عام منزل کی خرابی ہمیشہ خراب پراکسی کا ثبوت نہیں ہوتی۔ مڈل ویئر کو فعال رکھیں اور ناکامی کا سبب بننے والی درجہ بندی تبدیل کریں، بائنری ڈاؤن لوڈ کے لیے تمام پابندی کی شناخت بند کرنے کے بجائے۔

متعلقہ مضامین