Khetha i-proxy yensiza ngayinye ye-Splash
Khetha i-Splash proxy ezingeni le-render noma ku-on_request callback lapho izinsiza ngazinye zidinga imizila ehlukene.
Isicelo se-Scrapy singafinyelela ku-Splash, kodwa isiphequluli esingaphakathi kwe-Splash sisadinga umzila ohlukile wokuphuma. Lezi yizixhumanisi ezimbili:
Scrapy → Splash API
Splash browser → forward proxy → websiteUkuze kube ne-proxy eyodwa nge-render ngayinye, dlulisa i-proxy argument ye-HTTP API. I-Splash 3.5 ibhala i-proxy URL efana ne-http://proxy.example:8080, noma igama le-proxy-profile elilungisiwe. Ifomethi yayo ye-URL iphinde isekele i-SOCKS5 kanye nobufakazi obukhethekile.
Lapho izinsiza zekhasi ngazinye zidinga iziphetho ezihlukene, sebenzisa i-execute script futhi ubhalise ukukhetha ngaphambi kokuzulazula:
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()
endDlulisa i-default_proxy ne-special_proxy njengamagama e-host, kanye ne-special_resource njenge-URL eqondile yensiza okufanele ihlelwe ngokwehlukana. Shintsha iphothi elilodwa lesibonelo lapho izilaleli ezimbili zihlukene. Ezinye izinsiza zithola umzila ozenzakalelayo. Uhlu lwe-proxy ye-HTTP lunikeza abangeneleli beziphetho kulezi zinkambu ze-host nephothi lapho imizila eya ezinsizeni zomphakathi ivunyelwe futhi kungekho bufakazi be-proxy obusetshenziswa kubangeneleli.
Indlela ye-request yamukela izinkambu ezikhethekile ze-username ne-password. Ngohlobo lwe-HTTP, izindawo ze-HTTPS zisebenzisa i-CONNECT ngaleyo proxy ye-HTTP; azidingi uhlobo lwe-proxy ye-HTTPS oluqanjiwe.
I-callback isebenza ngaphambi kwesicelo ngasinye. Izindlela zayo ze-request azikwazi ukushintsha isicelo ngemva kokuba sithunyelwe, futhi i-callback ayikwazi ukushaya izindlela ze-Splash ezingalindelekile njenge-splash:go noma i-splash:wait.
Gcina ukukhetha komzila kuzinzile lapho ikhasi lilindele iseshini eyodwa noma ubunikazi bomthombo owodwa. Ukwabela isithombe ngasinye nesicelo se-API ngokungahleliwe kwenye indawo yokuphuma kungakhiqiza ikhasi elirenderiwe izicelo zalo ezingasayona ingxenye yeseshini eyodwa ehambisanayo.