Scrapy ඉල්ලීමක් Splash වෙත ළඟා විය හැකි නමුත් Splash තුළ ඇති බ්‍රවුසරයට තවමත් වෙනස් පිටවන මාර්ගයක් අවශ්‍ය වේ. මේවා සම්බන්ධතා දෙකකි:

Scrapy → Splash API
Splash browser → forward proxy → website

එක් render එකකට එක් ප්‍රොක්සියක් සඳහා 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 host නාම ලෙසද, special_resource වෙන් වෙන්ව මාර්ගගත කළ යුතු සම්පතේ නිශ්චිත URL ලෙසද යවන්න. සවන්දෙන්නන් දෙදෙනා වෙනස් වූ විට උදාහරණයේ එකම පෝට් එක වෙනස් කරන්න. අනෙක් සම්පත්වලට පෙරනිමි මාර්ගය ලැබේ. HTTP ප්‍රොක්සි ලැයිස්තුව මෙම host සහ port ක්ෂේත්‍ර සඳහා අන්ත ලක්ෂ්‍ය අපේක්ෂකයන් සපයයි, පොදු සම්පත් මාර්ග අවසර දී ඇති විට සහ අපේක්ෂකයන්ට ප්‍රොක්සි අක්තපත්‍ර යොදා නොගන්නා විට.

request ක්‍රමය අමතර username සහ password ක්ෂේත්‍ර පිළිගනී. HTTP වර්ගය සමඟ, HTTPS ගමනාන්ත එම HTTP ප්‍රොක්සිය හරහා CONNECT භාවිතා කරයි; ඒවාට ගොතන ලද HTTPS ප්‍රොක්සි වර්ගයක් අවශ්‍ය නොවේ.

කෝල්බැක් සෑම ඉල්ලීමකට පෙර ක්‍රියාත්මක වේ. එහි request ක්‍රම ඉල්ලීම යැවූ පසු වෙනස් කළ නොහැකි අතර, කෝල්බැක්ට splash:go හෝ splash:wait වැනි අසමකාලීන Splash ක්‍රම කැඳවිය නොහැක.

පිටුව එක් සැසියක් හෝ එක් මූලාශ්‍ර අනන්‍යතාවයක් අපේක්ෂා කරන විට මාර්ග තේරීම ස්ථාවරව තබන්න. සෑම රූපයක් සහ API ඉල්ලීමක් අහඹු ලෙස වෙනත් පිටවීමකට පැවරීමෙන් ඉල්ලීම් තවදුරටත් එක් සුසංගත සැසියකට අයත් නොවන render කළ පිටුවක් ඇති විය හැක.

අදාළ ලිපි