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 ምላሽ ወይም የተለመደ የመድረሻ ስህተት ሁልጊዜ መጥፎ ፕሮክሲ ማለት አይደለም። መካከለኛውን አቅራቢ ንቁ ያድርጉ እና ስህተቱን ያመጣውን ምድብ ይቀይሩ፣ ለሁለትዮሽ ማውረዶች ሁሉንም የእገዳ መለያ ከማጥፋት ይልቅ።