PDF သို့မဟုတ် ရုပ်ပုံသည် ပရောက်စီမှတစ်ဆင့် အောင်မြင်စွာရောက်ရှိပြီးနောက် ပိတ်ဆို့မှုရှာဖွေရေးတွင် မအောင်မြင်နိုင်ပါ။ Scrapy ၏ အခြေခံ Response သည် body bytes များကို ဖော်ပြသော်လည်း ၎င်း၏ 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

ပက်ကေ့ဂျ်၏ extension ဆက်တင်မှတစ်ဆင့် ရွေးချယ်ပါ-

PROXY_POOL_BAN_POLICY = "myproject.policy.BinaryAwarePolicy"

၎င်းသည် မူဝါဒ၏ အခြေအနေနှင့် ကိုယ်ထည်အလွတ် စည်းမျဉ်းများကို ထိန်းသိမ်းပြီး စာသားရှာဖွေမှုကို ၎င်းကို ပံ့ပိုးသော တုံ့ပြန်ချက်များတွင်သာ ကန့်သတ်သည်။ အမွေဆက်ခံထားသော ခြွင်းချက်မူဝါဒလည်း ရနိုင်ဆဲဖြစ်သည်။

ကျန်ရှိသော စည်းမျဉ်းများကိုလည်း အပလီကေးရှင်းအတွက် ပြန်လည်သုံးသပ်ပါ- ရည်ရွယ်ချက်ရှိရှိ အလွတ်ဖြစ်သော 200 တုံ့ပြန်ချက် သို့မဟုတ် သာမန်ဦးတည်ရာမှားယွင်းမှုသည် ပရောက်စီဆိုးသည်ဟု အမြဲသက်သေမပြပါ။ middleware ကို ဆက်လက်အသက်ဝင်စေပြီး မအောင်မြင်မှုဖြစ်စေသော အမျိုးအစားခွဲခြားမှုကို ပြောင်းလဲပါ၊ ဒွိစုံဒေါင်းလုဒ်များအတွက် ပိတ်ဆို့မှုရှာဖွေရေးအားလုံးကို ပိတ်ပစ်ခြင်းအစား။

ဆက်စပ်ဆောင်းပါးများ