একটি PDF বা ছবি প্রক্সির মাধ্যমে সফলভাবে আসতে পারে এবং পরে নিষিদ্ধকরণ শনাক্তকরণে ব্যর্থ হতে পারে। Scrapy-র মূল Response বডি বাইট দেখায়, কিন্তু এর 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 প্রতিক্রিয়া বা সাধারণ গন্তব্য ত্রুটি সর্বদা খারাপ প্রক্সির প্রমাণ নয়। মিডলওয়্যার সক্রিয় রাখুন এবং ব্যর্থতার কারণ শ্রেণিবিন্যাস বদলান, বাইনারি ডাউনলোডের জন্য সব নিষিদ্ধকরণ শনাক্তকরণ বন্ধ না করে।

সম্পর্কিত নিবন্ধ