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 అభ్యర్థనను యాదృచ్ఛికంగా మరో అవుట్‌లెట్‌కు కేటాయించడం వల్ల అభ్యర్థనలు ఇకపై ఒక సుసంగత సెషన్‌కు చెందని రెండర్ చేసిన పేజీ ఏర్పడవచ్చు.

సంబంధిత వ్యాసాలు