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 ಪ್ರತಿಕ್ರಿಯೆ ಅಥವಾ ಸಾಮಾನ್ಯ ಗಮ್ಯಸ್ಥಾನ ದೋಷ ಯಾವಾಗಲೂ ಕೆಟ್ಟ ಪ್ರಾಕ್ಸಿಯ ಸಾಕ್ಷ್ಯವಲ್ಲ. ಮಿಡಲ್‌ವೇರ್ ಸಕ್ರಿಯವಾಗಿ ಇರಿಸಿ ಮತ್ತು ವೈಫಲ್ಯಕ್ಕೆ ಕಾರಣವಾದ ವರ್ಗೀಕರಣವನ್ನು ಬದಲಿಸಿ, ಬೈನರಿ ಡೌನ್‌ಲೋಡ್‌ಗಳಿಗೆ ಎಲ್ಲಾ ನಿಷೇಧ ಪತ್ತೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವ ಬದಲು.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು