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 хариулт эсвэл энгийн очих газрын алдаа нь муу проксигийн баталгаа болдоггүй. Middleware-ийг идэвхтэй байлгаж, алдаа үүсгэсэн ангиллыг өөрчил, хоёртын татан авалтын хувьд бүх хаалт илрүүлэлтийг унтраахын оронд.

Холбоотой нийтлэлүүд