scrapy-proxy-pool: meðferð tvíundarsvara í bannskynjun
Takmarkaðu textmynstursprófun scrapy-proxy-pool við TextResponse og haltu stöðu- og tómum líkama ákvörðunum.
PDF eða mynd getur borist vel gegnum umboð og svo mistekist í bannskynjun. Grunn-Response Scrapy sýnir líkamabætin, en text-eiginleiki þess kastar villunni “Response content isn't text.”
Ef uppsetta scrapy-proxy-pool stefnan leitar í response.text án skilyrða, skiptu þeirri stefnu út fyrir gerðavitka útgáfu:
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
Veldu hana í gegnum viðbótarstillingu pakkans:
PROXY_POOL_BAN_POLICY = "myproject.policy.BinaryAwarePolicy"
Þetta heldur stöðu- og tómalíkama-reglum stefnunnar og takmarkar textaleitina við svör sem styðja hana. Erfða undantekningarstefnan er áfram tiltæk.
Farðu einnig yfir þessar eftirstandandi reglur fyrir forritið: viljandi tómt 200-svar eða venjuleg áfangastaðarvilla er ekki alltaf sönnun um slæmt umboð. Haltu millilaginu virku og breyttu flokkuninni sem olli biluninni, í stað þess að slökkva á allri bannskynjun fyrir tvíundarniðurhal.