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