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 жообу же кадимки багыт катасы ар дайым начар проксинин далили эмес. Ортоңку программаны активдүү кармап, ийгиликсиздикке себеп болгон классификацияны өзгөртүңүз, бинардык жүктөөлөр үчүн бардык тыюуну аныктоону өчүрүүнүн ордуна.

Тектеш макалалар