ຕິດຕັ້ງພຣອກຊີໃສ່ຄຳຮ້ອງຮູບພາບຂອງ Scrapy
ຕົກແຕ່ງ Requests ທີ່ ImagesPipeline ສ້າງ ເພື່ອໃຫ້ການດາວໂຫລດຮູບພາບໄດ້ຮັບພຣອກຊີ ໂດຍບໍ່ຕ້ອງສ້າງເຫດຜົນຄຳຮ້ອງຂອງ pipeline ຄືນໃໝ່.
from scrapy.pipelines.images import ImagesPipeline
class ProxiedImagesPipeline(ImagesPipeline):
def get_media_requests(self, item, info):
for request in super().get_media_requests(item, info):
request.meta['proxy'] = 'http://proxy.example:8080'
yield request
ສຳລັບ Scrapy 2.13.3 ໃຫ້ປ່ຽນລາຍການ ImagesPipeline ມາດຕະຖານໃນ ITEM_PIPELINES ດ້ວຍເສັ້ນທາງ import ຂອງຊັ້ນຍ່ອຍນີ້. ຮັກສາ IMAGES_STORE ແລະ ການຕັ້ງຄ່າອື່ນໆ.
ການເອີ້ນພໍ່ແມ່ຮັກສາເຂດ URL ຮູບພາບ ແລະ callback ທີ່ຕັ້ງຄ່າໄວ້. ຊັ້ນຍ່ອຍເພີ່ມພຽງເສັ້ນທາງຄຳຮ້ອງ ເຊິ່ງ HttpProxyMiddleware ທີ່ເປີດໃຊ້ງານຈະໃຊ້. ແຕ່ລະ URL ຮູບພາບຍັງເປັນປາຍທາງຂອງມັນ. ຄຳຮ້ອງຮູບພາບສາທາລະນະໃໝ່ທີ່ບໍ່ມີຂໍ້ມູນພຣອກຊີ ສາມາດໃຊ້ລາຍການຈາກ ບັນຊີພຣອກຊີ HTTP ເມື່ອເສັ້ນທາງນັ້ນໄດ້ຮັບອະນຸຍາດ.
ຄຳຮ້ອງໜ້າຮັກສານະໂຍບາຍຂອງຕົນເອງ. ດ້ວຍສະພາບແວດລ້ອມພຣອກຊີທົ່ວໂລກ meta={'proxy': None} ເຮັດໃຫ້ຄຳຮ້ອງໜ້າທີ່ເລືອກເປັນແບບຊື່ໃນສະບັບນີ້.
ກວດສອບວ່າການດາວໂຫລດຖືກສົ່ງອອກຈິງ. ການຖືກ cache ຂອງ pipeline ສາມາດຫຼີກລ້ຽງຄຳຮ້ອງເຄືອຂ່າຍ. ສຳລັບການສົ່ງຕໍ່ໃໝ່ ໃຫ້ປຽບທຽບລາຍການຜົນຮູບພາບທີ່ສຳເລັດກັບ URL ທີ່ຮ້ອງຂໍ: ການດຳເນີນການທີ່ສຳເລັດຈະປາກົດຢູ່ທີ່ນັ້ນ ສ່ວນຄວາມລົ້ມເຫຼວອາດປະເຂດ URL ຮູບພາບເດີມໄວ້ເຕັມ. ຕິດຕາມຜົນທີ່ຂາດຫາຍຜ່ານ log ຂອງຕົວດາວໂຫລດ ແລະ ພຣອກຊີທີ່ເລືອກ.