scrapy-proxy-pool: ပိတ်ဆို့မှုရှာဖွေရေးတွင် ဒွိစုံတုံ့ပြန်ချက်များကို ကိုင်တွယ်ခြင်း
အခြေအနေနှင့် ကိုယ်ထည်အလွတ် ဆုံးဖြတ်ချက်များကို ထိန်းသိမ်းထားပြီး scrapy-proxy-pool ၏ စာသားပုံစံစစ်ဆေးမှုကို TextResponse တွင် ကန့်သတ်ပါ။
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 ကို ဆက်လက်အသက်ဝင်စေပြီး မအောင်မြင်မှုဖြစ်စေသော အမျိုးအစားခွဲခြားမှုကို ပြောင်းလဲပါ၊ ဒွိစုံဒေါင်းလုဒ်များအတွက် ပိတ်ဆို့မှုရှာဖွေရေးအားလုံးကို ပိတ်ပစ်ခြင်းအစား။