scrapy-proxy-pool: प्रतिबन्ध पहिचानमा बाइनरी प्रतिक्रियाहरूको ह्यान्डलिङ
स्थिति र खाली-बडी निर्णयहरू कायम राख्दै scrapy-proxy-pool को पाठ-ढाँचा जाँचलाई TextResponse मा सीमित गर्नुहोस्।
PDF वा तस्बिर प्रोक्सीबाट सफलतापूर्वक आउन सक्छ र त्यसपछि प्रतिबन्ध पहिचानमा असफल हुन सक्छ। Scrapy को आधार Response ले body बाइटहरू देखाउँछ, तर यसको 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 प्रतिक्रिया वा सामान्य गन्तव्य त्रुटि सधैं खराब प्रोक्सीको प्रमाण होइन। मिडलवेयर सक्रिय राख्नुहोस् र असफलता निम्त्याउने वर्गीकरण परिवर्तन गर्नुहोस्, बाइनरी डाउनलोडका लागि सबै प्रतिबन्ध पहिचान बन्द गर्नुको सट्टा।