Wybierz proxy dla każdego zasobu Splash
Wybierz proxy Splash na poziomie renderowania lub w wywołaniu zwrotnym on_request, gdy poszczególne zasoby wymagają różnych tras.
Żądanie Scrapy może dotrzeć do Splash, podczas gdy przeglądarka wewnątrz Splash nadal potrzebuje innej trasy wyjściowej. To dwa połączenia:
Scrapy → Splash API
Splash browser → forward proxy → websiteDla jednego proxy na renderowanie przekaż argument proxy interfejsu HTTP API. Splash 3.5 dokumentuje adres URL proxy, taki jak http://proxy.example:8080, albo nazwę skonfigurowanego profilu proxy. Format adresu obsługuje także SOCKS5 i opcjonalne dane logowania.
Gdy poszczególne zasoby strony wymagają różnych punktów końcowych, użyj skryptu execute i zarejestruj wybór przed nawigacją:
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()
endPrzekaż default_proxy i special_proxy jako nazwy hostów, a special_resource jako dokładny adres URL zasobu, który ma być kierowany osobno. Zastąp jedyny port z przykładu, gdy dwa nasłuchy się różnią. Pozostałe zasoby otrzymują trasę domyślną. Lista proxy HTTP dostarcza kandydatów punktów końcowych dla tych pól hosta i portu, gdy trasy do zasobów publicznych są dozwolone, a do kandydatów nie są stosowane dane logowania proxy.
Metoda request przyjmuje opcjonalne pola username i password. Przy typie HTTP cele HTTPS używają CONNECT przez to proxy HTTP; nie wymagają wymyślonego typu proxy HTTPS.
Wywołanie zwrotne uruchamia się przed każdym żądaniem. Jego metody request nie mogą zmienić żądania po wysłaniu, a wywołanie zwrotne nie może wywoływać asynchronicznych metod Splash, takich jak splash:go czy splash:wait.
Utrzymuj stabilny wybór trasy, gdy strona oczekuje jednej sesji lub jednej tożsamości źródła. Losowe przypisywanie każdego obrazu i żądania API do innego wyjścia może dać wyrenderowaną stronę, której żądania nie należą już do jednej spójnej sesji.