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 հարցում պատահականորեն այլ ելքի հանձնելը կարող է ստեղծել ռենդերված էջ, որի հարցումներն այլևս չեն պատկանում մեկ համահունչ սեսիայի։

Առնչվող հոդվածներ