אַ 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-ענטפֿער אָדער אַ געוויינטלעכער ציל-טעות איז נישט שטענדיק אַ באַווײַז פֿון אַ שלעכטן פּראָקסי. לאָזט די מידלווער אַקטיוו און ענדערט די קלאַסיפֿיקאַציע וואָס האָט פֿאַרורזאַכט דעם דורכפֿאַל, אַנשטאָט אָפּשאַלטן די גאַנצע פֿאַרשפּערונג דערקענונג פֿאַר בינערע אַראָפּלאָדונגען.

פֿאַרבונדענע אַרטיקלען