Hou 'n Ruby Mechanize-agent vir elke proxy-sessie
Stel 'n Ruby Mechanize-agent se proxy een keer op, hergebruik dit vir verwante versoeke, en hou koekiestatus en aanhoudende verbindings doelbewus beperk.
As die taak is om HTTP-response te ondersoek en gewone skakels te volg, is 'n volledige blaaier nie altyd nodig nie. Ruby Mechanize stel die proxy beskikbaar op die agent wat daardie versoeke uitvoer:
agent = Mechanize.new('office-route')
begin
agent.set_proxy('proxy.example', 8080)
page = agent.get('https://www.example.com/')
puts page.code
ensure
agent.shutdown
endDit veronderstel dat die mechanize-biblioteek gelaai is. Vir 'n toegelate publieke-bladsy-toets sonder proxy-verifikasie verskaf die HTTP-proxylys kandidaat-gasheer/poort-waardes vir die voorbeeld. Die proxy-metode aanvaar ook 'n gebruikersnaam en wagwoord as sy opsionele derde en vierde argumente wanneer die eindpunt dit vereis.
Hergebruik die opgestelde agent vir versoeke wat aan dieselfde blaaisessie behoort. Dit dra koekies en geskiedenis sowel as netwerkinstellings. Om die uitgangsproxy te verander skep nie inherent 'n nuwe identiteit nie en gooi nie 'n aanmeldkoekie weg nie.
Vir verskeie proxy-sessies, gee elkeen sy eie agent eerder as om een gedeelde agent te verander terwyl werk aan die gang is. Die biblioteek dokumenteer ook unieke verbindingsname wanneer geskeide SSL-verbindings vereis word; die konstrukteurnaam in die voorbeeld maak daardie keuse eksplisiet.
Om verwante URL-toetse per proxy te groepeer kan onnodige herkonfigurasie verminder. Hou die resultaat gekoppel aan die roete en URL wat dit voortgebring het, insluitend herleidings en foutresponse.
Mechanize reproduseer nie 'n blaaier se JavaScript-uitvoering nie. Gebruik 'n werklike blaaier wanneer die gedrag wat getoets word van skrifte, weergee of blaaier-spesifieke verifikasie afhang. 'n Suksesvolle HTTP-ophaal deur die proxy beantwoord die nouer vraag dat hierdie agent daardie versoek kon maak.