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