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 жауабы немесе қарапайым мақсат қатесі әрдайым нашар проксидің дәлелі емес. Аралық бағдарламаны белсенді ұстап, сәтсіздікке себеп болған жіктеуді өзгертіңіз, бинарлық жүктеулер үшін бүкіл бұғаттау анықтауын өшірудің орнына.