scrapy-proxy-pool: viðgerð av binærum svarum í bannskynjan
Avmarka tekstmynsturkontrollina í scrapy-proxy-pool til TextResponse og varðveit avgerðir um status og tóman likama.
Ein PDF ella ein mynd kann koma væl gjøgnum ein proxy og so miseydnast í bannskynjanini. Grund-Response í Scrapy vísir likamsbyti, men text-eindin hjá tí reisir villuna “Response content isn't text.”
Um uppsetta scrapy-proxy-pool-reglan leitar í response.text uttan treytir, skifta tá regluni út við eini slættviðkvomari útgávu:
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
Vel ta gjøgnum víðkanarstillingina í pakkanum:
PROXY_POOL_BAN_POLICY = "myproject.policy.BinaryAwarePolicy"
Hetta varðveitir status- og tómalikama-reglur reglunnar og avmarkar tekstleitingina til svar, ið stuðla henni. Hin arvaða undantaksreglan er framvegis tøk.
Viðger eisini tær restandi reglurnar fyri støddina: eitt viljandi tómt 200-svar ella ein vanlig málfeilur er ikki altíð prógv um ein vágan proxy. Halt millumlagið virkið og broyt bólkingina, ið førdi til miseydnaðu, í staðin fyri at sløkkja alla bannskynjan fyri binærar niðurtøkur.