აირჩიეთ პროქსი თითოეული Splash რესურსისთვის
აირჩიეთ Splash პროქსი რენდერის დონეზე ან on_request უკუგამოძახებაში, როცა ცალკეულ რესურსებს სხვადასხვა მარშრუტი სჭირდება.
Scrapy მოთხოვნამ შეიძლება წარმატებით მიაღწიოს Splash-ს, მაშინ როცა Splash-ის შიგნით არსებულ ბრაუზერს ჯერ კიდევ სხვა გამავალი მარშრუტი სჭირდება. ეს ორი კავშირია:
Scrapy → Splash API
Splash browser → forward proxy → websiteთითო რენდერზე ერთი პროქსისთვის გადააწოდეთ HTTP API-ის proxy არგუმენტი. Splash 3.5 აფიქსირებს პროქსის URL-ს, მაგალითად 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-ად. შეცვალეთ მაგალითის ერთადერთი პორტი, როცა ორი მსმენელი განსხვავდება. სხვა რესურსები იღებენ ნაგულისხმევ მარშრუტს. HTTP პროქსების სია გთავაზობთ საბოლოო წერტილის კანდიდატებს ამ ჰოსტისა და პორტის ველებისთვის, როცა საჯარო რესურსებზე მარშრუტები დაშვებულია და კანდიდატებზე პროქსის სერტიფიკატები არ გამოიყენება.
request მეთოდი იღებს არასავალდებულო username და password ველებს. HTTP ტიპის შემთხვევაში, HTTPS დანიშნულებები იყენებენ CONNECT-ს ამ HTTP პროქსის მეშვეობით; მათ არ სჭირდებათ გამოგონილი HTTPS პროქსის ტიპი.
უკუგამოძახება მუშაობს ყოველ მოთხოვნამდე. მისი request მეთოდები ვერ შეცვლიან გაგზავნილ მოთხოვნას, და უკუგამოძახება ვერ გამოიძახებს ასინქრონულ Splash მეთოდებს, როგორიცაა splash:go ან splash:wait.
შეინარჩუნეთ მარშრუტის არჩევანი სტაბილური, როცა გვერდი ერთ სესიას ან წყაროს იდენტობას ელოდება. ყოველი სურათისა და API მოთხოვნის შემთხვევით სხვა გასასვლელზე მიბმამ შეიძლება შექმნას რენდერირებული გვერდი, რომლის მოთხოვნები აღარ მიეკუთვნება ერთ თანმიმდევრულ სესიას.