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 विनंती यादृच्छिकपणे दुसऱ्या आउटलेटला नेमण्यामुळे असे रेंडर केलेले पृष्ठ तयार होऊ शकते ज्याच्या विनंत्या आता एका सुसंगत सत्राशी संबंधित नाहीत.

संबंधित लेख