PDF au picha inaweza kufika kwa mafanikio kupitia proksi kisha kushindwa katika utambuzi wa marufuku. Response ya msingi ya Scrapy inaonyesha baiti za mwili, lakini sifa yake ya text inazua hitilafu “Response content isn't text.”

Ikiwa sera ya scrapy-proxy-pool iliyosakinishwa inatafuta response.text bila masharti, badilisha sera hiyo na toleo linalotambua aina:

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

Ichague kupitia mpangilio wa kiendelezi wa kifurushi:

PROXY_POOL_BAN_POLICY = "myproject.policy.BinaryAwarePolicy"

Hii huhifadhi kanuni za sera za hali na mwili tupu na huzuia utafutaji wa maandishi kwa majibu yanayoiunga mkono. Sera ya msamaha iliyorithiwa inabaki kupatikana.

Pitia pia kanuni zilizosalia kwa ajili ya programu: jibu la 200 tupu kwa makusudi au hitilafu ya kawaida ya lengwa si ushahidi wa proksi mbaya kila wakati. Acha middleware ikiwa hai na ubadilishe uainishaji uliosababisha kushindwa, badala ya kuzima utambuzi wote wa marufuku kwa upakuaji wa binary.

Makala zinazohusiana