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 ವಿನಂತಿಯನ್ನು ಯಾದೃಚ್ಛಿಕವಾಗಿ ಬೇರೆ ಔಟ್‌ಲೆಟ್‌ಗೆ ನಿಗದಿಪಡಿಸುವುದರಿಂದ ವಿನಂತಿಗಳು ಇನ್ನು ಮುಂದೆ ಒಂದು ಸುಸಂಗತ ಸೆಷನ್‌ಗೆ ಸೇರದ ರೆಂಡರ್ ಮಾಡಿದ ಪುಟ ಉಂಟಾಗಬಹುದು.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು