ເລືອກ proxy ສຳລັບແຕ່ລະຊັບພະຍາກອນ Splash
ເລືອກ proxy Splash ໃນລະດັບ render ຫຼືໃນ callback on_request ເມື່ອຊັບພະຍາກອນແຕ່ລະອັນຕ້ອງການເສັ້ນທາງທີ່ແຕກຕ່າງ.
ຄຳຮ້ອງ Scrapy ສາມາດໄປຮອດ Splash ໄດ້ ໃນຂະນະທີ່ບຣາວເຊີພາຍໃນ Splash ຍັງຕ້ອງການເສັ້ນທາງອອກທີ່ແຕກຕ່າງ. ນີ້ແມ່ນສອງການເຊື່ອມຕໍ່:
Scrapy → Splash API
Splash browser → forward proxy → websiteສຳລັບໜຶ່ງ proxy ຕໍ່ການ render, ສົ່ງອາກິວເມັນ proxy ຂອງ HTTP API. Splash 3.5 ເອກະສານ URL proxy ເຊັ່ນ http://proxy.example:8080, ຫຼືຊື່ proxy-profile ທີ່ຕັ້ງຄ່າແລ້ວ. ຮູບແບບ URL ຂອງມັນຍັງຮອງຮັບ SOCKS5 ແລະຂໍ້ມູນຢືນຢັນທີ່ເປັນທາງເລືອກ.
ເມື່ອຊັບພະຍາກອນໜ້າເວັບແຕ່ລະອັນຕ້ອງການຈຸດປາຍທາງທີ່ແຕກຕ່າງ, ໃຫ້ໃຊ້ສະຄຣິບ execute ແລະລົງທະບຽນການເລືອກກ່ອນການນຳທາງ:
function main(splash, args)
splash:on_request(function(request)
local host = args.default_proxy
if request.url == args.special_resource then
host = args.special_proxy
end
request:set_proxy{host = host, port = 8080, type = 'HTTP'}
end)
assert(splash:go(args.url))
return splash:html()
endສົ່ງ default_proxy ແລະ special_proxy ເປັນຊື່ໂຮສ, ແລະ special_resource ເປັນ URL ທີ່ແນ່ນອນຂອງຊັບພະຍາກອນທີ່ຈະເສັ້ນທາງແຍກ. ປ່ຽນພອດດຽວໃນຕົວຢ່າງເມື່ອຜູ້ຟັງສອງອັນແຕກຕ່າງກັນ. ຊັບພະຍາກອນອື່ນໆໄດ້ຮັບເສັ້ນທາງເລີ່ມຕົ້ນ. ລາຍຊື່ proxy HTTP ສະໜອງຜູ້ສະໝັກຈຸດປາຍທາງສຳລັບຊ່ອງໂຮສ ແລະ ພອດເຫຼົ່ານີ້ ເມື່ອອະນຸຍາດເສັ້ນທາງໄປຫາຊັບພະຍາກອນສາທາລະນະ ແລະ ບໍ່ມີການໃຊ້ຂໍ້ມູນຢືນຢັນ proxy ກັບຜູ້ສະໝັກ.
ວິທີ request ຮັບຊ່ອງ username ແລະ password ທີ່ເປັນທາງເລືອກ. ດ້ວຍປະເພດ HTTP, ປາຍທາງ HTTPS ໃຊ້ CONNECT ຜ່ານ proxy HTTP ນັ້ນ; ພວກມັນບໍ່ຕ້ອງການປະເພດ proxy HTTPS ທີ່ແຕ່ງຂຶ້ນ.
Callback ແລ່ນກ່ອນແຕ່ລະຄຳຮ້ອງ. ວິທີ request ຂອງມັນບໍ່ສາມາດປ່ຽນຄຳຮ້ອງຫຼັງຈາກສົ່ງແລ້ວ, ແລະ callback ບໍ່ສາມາດເອີ້ນວິທີ Splash ອະສົມມຸດຄື splash:go ຫຼື splash:wait.
ຮັກສາການເລືອກເສັ້ນທາງໃຫ້ໝັ້ນຄົງເມື່ອໜ້າເວັບຄາດຫວັງໜຶ່ງ session ຫຼື ໜຶ່ງຕົວຕົນແຫຼ່ງຂໍ້ມູນ. ການມອບໝາຍທຸກຮູບ ແລະ ຄຳຮ້ອງ API ແບບສຸ່ມໄປທາງອອກອື່ນ ອາດເຮັດໃຫ້ໜ້າເວັບທີ່ render ແລ້ວມີຄຳຮ້ອງທີ່ບໍ່ເປັນຂອງ session ດຽວທີ່ສອດຄ່ອງກັນອີກ.