scrapy-proxy-pool: নিষিদ্ধকরণ শনাক্তকরণে বাইনারি প্রতিক্রিয়া পরিচালনা
scrapy-proxy-pool-এর টেক্সট-প্যাটার্ন পরীক্ষা TextResponse-এ সীমাবদ্ধ করুন, স্ট্যাটাস ও খালি-বডি সিদ্ধান্ত অক্ষুণ্ণ রেখে।
একটি 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 প্রতিক্রিয়া বা সাধারণ গন্তব্য ত্রুটি সর্বদা খারাপ প্রক্সির প্রমাণ নয়। মিডলওয়্যার সক্রিয় রাখুন এবং ব্যর্থতার কারণ শ্রেণিবিন্যাস বদলান, বাইনারি ডাউনলোডের জন্য সব নিষিদ্ধকরণ শনাক্তকরণ বন্ধ না করে।