ഒരു 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 പ്രതികരണമോ സാധാരണ ലക്ഷ്യ പിശകോ എപ്പോഴും മോശം പ്രോക്സിയുടെ തെളിവല്ല. മിഡിൽവെയർ സജീവമായി നിലനിർത്തി പരാജയത്തിന് കാരണമായ വർഗ്ഗീകരണം മാറ്റുക, ബൈനറി ഡൗൺലോഡുകൾക്ക് എല്ലാ വിലക്ക് കണ്ടെത്തലും ഓഫ് ചെയ്യുന്നതിന് പകരം.

അനുബന്ധ ലേഖനങ്ങൾ