Scrapy അഭ്യർത്ഥന Splash-ൽ എത്തിയേക്കാം, പക്ഷേ Splash-നുള്ളിലെ ബ്രൗസറിന് ഇപ്പോഴും വ്യത്യസ്തമായ ഒരു ഔട്ട്ബൗണ്ട് റൂട്ട് ആവശ്യമാണ്. ഇവ രണ്ട് കണക്ഷനുകളാണ്:

Scrapy → Splash API
Splash browser → forward proxy → website

ഓരോ റെൻഡറിനും ഒരു പ്രോക്സിക്ക് HTTP API-യുടെ proxy ആർഗ്യുമെന്റ് നൽകുക. Splash 3.5, http://proxy.example:8080 പോലുള്ള ഒരു പ്രോക്സി 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()
end

default_proxy, special_proxy എന്നിവ ഹോസ്റ്റ്നാമങ്ങളായും special_resource വെവ്വേറെ റൂട്ട് ചെയ്യേണ്ട വിഭവത്തിന്റെ കൃത്യമായ URL ആയും നൽകുക. രണ്ട് ലിസണറുകൾ വ്യത്യസ്തമാകുമ്പോൾ ഉദാഹരണത്തിലെ ഏക പോർട്ട് മാറ്റുക. മറ്റ് വിഭവങ്ങൾക്ക് സ്ഥിരസ്ഥിതി റൂട്ട് ലഭിക്കുന്നു. HTTP പ്രോക്സി പട്ടിക ഈ ഹോസ്റ്റ്, പോർട്ട് ഫീൽഡുകൾക്ക് എന്റ്പോയിന്റ് സ്ഥാനാർത്ഥികൾ നൽകുന്നു, പൊതു വിഭവ റൂട്ടുകൾ അനുവദനീയമായിരിക്കുകയും സ്ഥാനാർത്ഥികളിൽ പ്രോക്സി ക്രെഡൻഷ്യലുകൾ പ്രയോഗിക്കാതിരിക്കുകയും ചെയ്യുമ്പോൾ.

request രീതി ഓപ്ഷണൽ username, password ഫീൽഡുകൾ സ്വീകരിക്കുന്നു. HTTP തരത്തിൽ HTTPS ലക്ഷ്യങ്ങൾ ആ HTTP പ്രോക്സി വഴി CONNECT ഉപയോഗിക്കുന്നു; അവ നിർമ്മിച്ച HTTPS പ്രോക്സി തരം ആവശ്യപ്പെടുന്നില്ല.

കോൾബാക്ക് ഓരോ അഭ്യർത്ഥനയ്ക്കും മുമ്പ് പ്രവർത്തിക്കുന്നു. അതിന്റെ request രീതികൾക്ക് അയച്ചതിന് ശേഷം അഭ്യർത്ഥന മാറ്റാൻ കഴിയില്ല, കൂടാതെ കോൾബാക്കിന് splash:go അല്ലെങ്കിൽ splash:wait പോലുള്ള അസമകാലിക Splash രീതികൾ വിളിക്കാനും കഴിയില്ല.

പേജ് ഒരു സെഷൻ അല്ലെങ്കിൽ ഒരു ഉറവിട ഐഡന്റിറ്റി പ്രതീക്ഷിക്കുമ്പോൾ റൂട്ട് തിരഞ്ഞെടുപ്പ് സ്ഥിരമായി നിലനിർത്തുക. ഓരോ ചിത്രവും API അഭ്യർത്ഥനയും ക്രമരഹിതമായി മറ്റൊരു ഔട്ട്ലെറ്റിന് നൽകുന്നത്, അഭ്യർത്ഥനകൾ ഇനി ഒരു സുസ്ഥിര സെഷനിൽ ഉൾപ്പെടാത്ത റെൻഡർ ചെയ്ത പേജിന് കാരണമായേക്കാം.

അനുബന്ധ ലേഖനങ്ങൾ