PDF ຫຼື ຮູບພາບສາມາດມາຮອດຜ່ານ proxy ໄດ້ຢ່າງສຳເລັດ ແລ້ວລົ້ມເຫຼວຢູ່ໃນການກວດຫາການຫ້າມ. Response ພື້ນຖານຂອງ Scrapy ສະແດງ body bytes, ແຕ່ຄຸນສົມບັດ 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 ທີ່ເປົ່າໂດຍເຈດຕະນາ ຫຼື ຂໍ້ຜິດພາດປາຍທາງທຳມະດາ ບໍ່ແມ່ນຫຼັກຖານວ່າ proxy ບໍ່ດີສະເໝີ. ໃຫ້ middleware ເຮັດວຽກຢູ່ ແລະ ປ່ຽນການຈັດປະເພດທີ່ເຮັດໃຫ້ເກີດຄວາມຜິດພາດ, ແທນທີ່ຈະປິດການກວດຫາການຫ້າມທັງໝົດສຳລັບການດາວໂຫຼດແບບຖານສອງ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ