ھەر بىر Splash مەنبەسىگە بىر ۋاكالەتچى تاللاڭ
ئايرىم مەنبەلەر ئوخشىمىغان يوللارغا ئېھتىياجلىق بولغاندا، proxy نى render دەرىجىسىدە ياكى on_request قايتۇرما چاقىرىقىدا تاللاڭ.
Scrapy تەلەپنامىسى Splash كە يېتەلەيدۇ، ئەمما Splash ئىچىدىكى توركۆرگۈچ يەنىلا باشقا چىقىش يولىغا ئېھتىياجلىق. بۇ ئىككى ئۇلىنىش:
Scrapy → Splash API
Splash browser → forward proxy → websiteھەر بىر render ئۈچۈن بىر proxy بولغاندا HTTP API نىڭ proxy پارامېتىرىنى يوللاڭ. Splash 3.5 http://proxy.example:8080 غا ئوخشاش proxy URL نى ياكى سەپلەنگەن 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()
enddefault_proxy ۋە special_proxy نى مۇلازىمېتىر نامى سۈپىتىدە، special_resource نى ئايرىم يوللانمايدىغان مەنبەنىڭ توغرا URL ى سۈپىتىدە يوللاڭ. ئىككى ئاڭلىغۇچى ئوخشىمىسا ئۈلگىدىكى بىرلا پورتنى ئالماشتۇرۇڭ. باشقا مەنبەلەر سۈكۈتتىكى يولنى ئالىدۇ. HTTP ۋاكالەتچى تىزىملىكى ئاممىۋى مەنبە يوللىرى رۇخسەت قىلىنغان ۋە نامزاتلارغا proxy سالاھىيەت ئۇچۇرى قوللىنىلمىغاندا، بۇ مۇلازىمېتىر ۋە پورت رايونلىرى ئۈچۈن ئاخىرقى نۇقتا نامزاتلىرىنى تەمىنلەيدۇ.
request ئۇسۇلى ئىختىيارىي username ۋە password رايونلىرىنى قوبۇل قىلىدۇ. HTTP تىپى بىلەن HTTPS نىشانلىرى شۇ HTTP proxy ئارقىلىق CONNECT نى ئىشلىتىدۇ؛ ئۇلارغا ئويدۇرۇپ چىقىلغان HTTPS proxy تىپى كەتمەيدۇ.
قايتۇرما چاقىرىق ھەر بىر تەلەپتىن ئىلگىرى ئىجرا بولىدۇ. ئۇنىڭ request ئۇسۇللىرى ئەۋەتىلگەن تەلەپنى ئۆزگەرتەلمەيدۇ، قايتۇرما چاقىرىق splash:go ياكى splash:wait قاتارلىق ئاسىنخرون Splash ئۇسۇللىرىنى چاقىرالمايدۇ.
بەت بىر سېسىيە ياكى بىر مەنبە سالاھىيىتىنى كۈتكەندە يول تاللاشنى مۇقىم ساقلاڭ. ھەر بىر رەسىم ۋە API تەلەپنى تاساددىپىي باشقا چىقىشقا تەقسىملەش، تەلەپلىرى ئەمدى بىر ماسلاشقان سېسىيەگە تەۋە بولمىغان render قىلىنغان بەت ھاسىل قىلىشى مۇمكىن.