ເມື່ອກວດເສັ້ນທາງທີ່ເລືອກ, ໃຊ້ Request ທີ່ຕິດກັບການຕອບສະໜອງທີ່ສຳເລັດແລ້ວ. ເກັບການສັງເກດສາມຢ່າງແຍກກັນ:

ຊ່ອງຄວາມໝາຍ
response.request.meta.get('proxy')URL proxy ທີ່ເລືອກສຳລັບຄຳຮ້ອງນີ້, ເມື່ອມີ
response.ip_addressທີ່ຢູ່ທີ່ handler ດາວໂຫຼດໃຫ້, ອາດເປັນ None
ລາຍງານແຫຼ່ງຈາກປາຍທາງທີ່ໄວ້ວາງໃຈແຫຼ່ງສາທາລະນະທີ່ສັງເກດເຫັນຢູ່ນັ້ນ

ພາຍໃນ callback, ຍົກເວັ້ນພາກສ່ວນ URL ທີ່ມີຂໍ້ມູນຢືນຢັນອອກຈາກການວິເຄາະປົກກະຕິ:

from urllib.parse import urlsplit

proxy = response.request.meta.get('proxy')
proxy_host = urlsplit(proxy).hostname if proxy else None
self.logger.info(
    'target_host=%s proxy_host=%s peer_ip=%s',
    urlsplit(response.url).hostname, proxy_host, response.ip_address,
)

ໃນ handler HTTP/1.1 ຂອງ Scrapy 2.13.3 ທີ່ຢູ່ມາຈາກ peer ຂອງການເຊື່ອມຕໍ່ຂອງການຕອບສະໜອງ, ບໍ່ແມ່ນຈາກບໍລິການ IP ອອກ. ບາງເສັ້ນທາງ, ລວມທັງການຕອບສະໜອງຄວາມຍາວສູນ, ອາດເຮັດໃຫ້ມັນເປັນ None. handler ອື່ນອາດເຕີມມັນຕ່າງກັນ. None ເອງບໍ່ໄດ້ພິສູດການເສັ້ນທາງໂດຍກົງ.

ສຳລັບການກວດອອກ, ຖາມຈຸດສິ້ນສຸດທີ່ໄວ້ວາງໃຈພາຍໃຕ້ນະໂຍບາຍ proxy ທີ່ຕັ້ງໃຈ ແລະ ເກັບຕົວຕົນຂອງຄຳຮ້ອງກັບການສັງເກດ. middleware ທີ່ໝູນວຽນອາດໃຫ້ຈຸດສິ້ນສຸດອື່ນສຳລັບການກວດຕໍ່ໄປ.

ການປ່ຽນເສັ້ນທາງກໍ່ສ້າງຄຳຮ້ອງອີກອັນໜຶ່ງ. metadata ສຸດທ້າຍອະທິບາຍຂັ້ນນັ້ນ; ກວດປະຫວັດການປ່ຽນເສັ້ນທາງ ແລະ ການເລືອກຄືນໃໝ່ໃດໆຂອງ middleware ແທນທີ່ຈະຖືວ່າເປັນຫຼັກຖານຂອງເສັ້ນທາງ URL ທຳອິດ.

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