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 ਜਵਾਬ ਜਾਂ ਆਮ ਮੰਜ਼ਿਲ ਗਲਤੀ ਹਮੇਸ਼ਾ ਖਰਾਬ ਪ੍ਰੌਕਸੀ ਦਾ ਸਬੂਤ ਨਹੀਂ ਹੁੰਦੀ। ਮਿਡਲਵੇਅਰ ਸਰਗਰਮ ਰੱਖੋ ਅਤੇ ਫੇਲ੍ਹਤ ਦਾ ਕਾਰਨ ਬਣੀ ਸ਼੍ਰੇਣੀ ਬਦਲੋ, ਬਾਈਨਰੀ ਡਾਊਨਲੋਡ ਲਈ ਸਾਰੀ ਪਾਬੰਦੀ ਖੋਜ ਬੰਦ ਕਰਨ ਦੀ ਬਜਾਏ।