scrapy-proxy-pool: immaniġġja risponsi binarji fl-iskoperta tal-imblukkar
Illimita l-verifika tal-mudell tat-test ta' scrapy-proxy-pool għal TextResponse filwaqt li żżomm id-deċiżjonijiet dwar status u korp vojt.
PDF jew immaġni tista' tasal b'suċċess permezz ta' prokura u mbagħad tfalli fl-iskoperta tal-imblukkar. Ir-Response bażika ta' Scrapy turi l-bytes tal-korp, imma l-proprjetà text tagħha tqajjem l-iżball “Response content isn't text.”
Jekk il-politika installata ta' scrapy-proxy-pool tfittex response.text mingħajr kundizzjoni, ibdel dik il-politika b'verżjoni li tifhem it-tip:
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
Agħżelha permezz tas-setting tal-estensjoni tal-pakkett:
PROXY_POOL_BAN_POLICY = "myproject.policy.BinaryAwarePolicy"
Dan iżomm ir-regoli tal-politika dwar status u korp vojt u jillimita t-tiftix tat-test għal risponsi li jappoġġjawh. Il-politika tal-eċċezzjoni li tintiret tibqa' disponibbli.
Erġa' eżamina dawn ir-regoli li fadal għall-applikazzjoni wkoll: risposta 200 li tkun vojta apposta jew żball ordinarju fid-destinazzjoni mhux dejjem huma prova ta' prokura ħażina. Żomm il-middleware attiv u ibdel il-klassifikazzjoni li kkawżat il-falliment, minflok tiddiżattiva l-iskoperta kollha tal-imblukkar għat-tniżżil binarju.