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 अनुरोधलाई अनियमित रूपमा अर्को आउटलेटमा तोक्दा अनुरोधहरू अब एउटै सुसंगत सत्रमा नपर्ने रेन्डर गरिएको पृष्ठ बन्न सक्छ।

सम्बन्धित लेखहरू