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 प्रतिसाद किंवा सामान्य गंतव्य त्रुटी ही नेहमीच वाईट प्रॉक्सीची पुरावा नसते. मिडलवेअर सक्रिय ठेवा आणि अयशस्वीतेला कारणीभूत वर्गीकरण बदला, बायनरी डाउनलोडसाठी सर्व बंदी ओळख बंद करण्याऐवजी.