Scrapy ສາມາດສະແດງການປ່ຽນເສັ້ນທາງກ່ອນຈະຕິດຕາມມັນ
ເປີດເຜີຍສະຖານະການປ່ຽນເສັ້ນທາງເບື້ອງຕົ້ນ ແລະ Location ຂອງ GET ຜ່ານ proxy ຊົ່ວຄາວຜ່ານ metadata ຂອງຄຳຮ້ອງ, ໂດຍແຍກການຈັດການການປ່ຽນເສັ້ນທາງອອກຈາກການກັ່ນຕອງຄວາມຜິດພາດ HTTP.
GET ຜ່ານ proxy ສາມາດໄປຮອດເຊີບເວີ ແລ້ວຕິດຕາມການປ່ຽນເສັ້ນທາງ ຈົນກວ່າຄວາມລົ້ມເຫຼວສຸດທ້າຍຈະປິດບັງການຕອບສະໜອງທຳອິດ. ເປີດເຜີຍການຕອບສະໜອງເບື້ອງຕົ້ນນັ້ນເພື່ອການວິເຄາະ:
request = scrapy.Request(
'https://service.example/page',
callback=inspect_redirect,
meta={
'proxy': 'http://proxy.example:8080',
'dont_redirect': True,
'handle_httpstatus_list': [301, 302, 303, 307, 308],
},
)
ກຳນົດເວລາຄຳຮ້ອງນີ້ຜ່ານຂະບວນການ start ຫຼື callback ທີ່ມີຢູ່ແລ້ວຂອງ spider. ສຳລັບການທົດສອບໜ້າເວັບສາທາລະນະທີ່ໄດ້ຮັບອະນຸຍາດ ລາຍຊື່ proxy HTTP ສະໜອງຜູ້ສະໝັກສຳລັບ URL proxy ຂອງຄຳຮ້ອງ. inspect_redirect ຄວນບັນທຶກສະຖານະການຕອບສະໜອງ ແລະ ຫົວຂໍ້ Location ແທນທີ່ຈະຕິດຕາມມັນຄືນຢ່າງບໍ່ມີເຫດຜົນ.
dont_redirect ຢຸດການປ່ຽນເສັ້ນທາງອັດຕະໂນມັດສຳລັບຄຳຮ້ອງນີ້. handle_httpstatus_list ໃຫ້ສະຖານະທີ່ລະບຸໄວ້ໄປຮອດ callback ແທນທີ່ຈະຖືກປະຕິເສດໂດຍການກັ່ນຕອງຄວາມຜິດພາດ HTTP. ການຕັ້ງຄ່າເຫຼົ່ານີ້ກ່ຽວຂ້ອງກັບໜ້າທີ່ຕ່າງກັນຂອງ middleware.
ກວດເບິ່ງວ່າການປ່ຽນເສັ້ນທາງເລືອກຫຍັງ: URL canonical ທີ່ຕັ້ງໃຈ, scheme ຫຼື hostname ອື່ນ, ໜ້າເຂົ້າສູ່ລະບົບ, ຫຼື ວົງຈອນທີ່ເກີດຊ້ຳ. 302 ທີ່ໄດ້ຮັບຫຼັງການຂົນສົ່ງສຳເລັດແມ່ນການສັງເກດທີ່ແຕກຕ່າງຈາກການເປີດການເຊື່ອມຕໍ່ proxy ບໍ່ໄດ້.
ເມື່ອການຈັດການການປ່ຽນເສັ້ນທາງປົກກະຕິຖືກຟື້ນຟູ, Scrapy ຈະເປີດເຜີຍ redirect_urls ແລະ redirect_reasons ໃນ metadata ຄຳຮ້ອງຂອງການຕອບສະໜອງ. ສິ່ງເຫຼົ່ານີ້ສາມາດຮັກສາເສັ້ນທາງໄປສູ່ຜົນສຸດທ້າຍ ໂດຍບໍ່ປະໃຫ້ການປ່ຽນເສັ້ນທາງຖືກປິດໄວ້ຕະຫຼອດການຄົ້ນຫາ.
ການຕອບສະໜອງສຸດທ້າຍບໍ່ແມ່ນໜ້າເວັບທີ່ແອັບພລິເຄຊັນຕັ້ງໃຈໂດຍອັດຕະໂນມັດ. ເກັບປາຍທາງ ແລະ ເນື້ອຫາການຕອບສະໜອງໄວ້ກັບການວິເຄາະເສັ້ນທາງ.