scrapy-proxy-pool: באַהאַנדלען בינערע ענטפֿערס אין פֿאַרשפּערונג דערקענונג
באַגרענעצן די טעקסט-מוסטער פּרובֿ פֿון scrapy-proxy-pool צו TextResponse, בשעת מ'האַלט די סטאַטוס און ליידיקער-קערפּער באַשלוסן.
אַ PDF אָדער בילד קען אָנקומען מיט הצלחה דורך אַ פּראָקסי און דערנאָך דורכפֿאַלן אין דער פֿאַרשפּערונג דערקענונג. דער באַזיס-Response פֿון Scrapy ווײַזט די 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-ענטפֿער אָדער אַ געוויינטלעכער ציל-טעות איז נישט שטענדיק אַ באַווײַז פֿון אַ שלעכטן פּראָקסי. לאָזט די מידלווער אַקטיוו און ענדערט די קלאַסיפֿיקאַציע וואָס האָט פֿאַרורזאַכט דעם דורכפֿאַל, אַנשטאָט אָפּשאַלטן די גאַנצע פֿאַרשפּערונג דערקענונג פֿאַר בינערע אַראָפּלאָדונגען.