scrapy-proxy-pool: ຈັດການການຕອບສະໜອງແບບຖານສອງໃນການກວດຫາການຫ້າມ
ຈຳກັດການກວດສອບຮູບແບບຂໍ້ຄວາມຂອງ scrapy-proxy-pool ໃຫ້ TextResponse ໂດຍຮັກສາການຕັດສິນສະຖານະ ແລະ ໂຕເປົ່າ.
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 ເຮັດວຽກຢູ່ ແລະ ປ່ຽນການຈັດປະເພດທີ່ເຮັດໃຫ້ເກີດຄວາມຜິດພາດ, ແທນທີ່ຈະປິດການກວດຫາການຫ້າມທັງໝົດສຳລັບການດາວໂຫຼດແບບຖານສອງ.