Трымайце агент Ruby Mechanize для кожнай праксі-сесіі
Наладзьце праксі агента Ruby Mechanize адзін раз, паўторна выкарыстоўвайце яго для звязаных запытаў і свядома абмяжоўвайце стан cookie і пастаянныя злучэнні.
Калі задача — правяраць HTTP-адказы і пераходзіць па звычайных спасылках, поўны браўзер патрэбны не заўсёды. Ruby Mechanize паказвае праксі на агент, які выконвае гэтыя запыты:
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
endГэта мяркуе, што бібліятэка mechanize загружана. Для дазволенай праверкі публічнай старонкі без аўтэнтыфікацыі праксі спіс HTTP-праксі дае прыдатныя значэнні host/port для прыкладу. Метад proxy таксама прымае імя карыстальніка і пароль як неабавязковыя трэці і чацвёрты аргументы, калі гэтага патрабуе endpoint.
Паўторна выкарыстоўвайце наладжаны агент для запытаў, якія належаць да той жа сесіі аглядання. Ён захоўвае cookie і гісторыю, а таксама сеткавыя налады. Змена выходнага праксі сама па сабе не стварае новую ідэнтычнасць і не адкідвае cookie ўваходу.
Для некалькіх праксі-сесій дайце кожнай свой агент, а не змяняйце адзін агульны агент падчас працы. Бібліятэка таксама дакументуе ўнікальныя імёны злучэнняў, калі патрабуюцца адасобленыя SSL-злучэнні; імя канструктара ў прыкладзе робіць гэты выбар відавочным.
Групаванне звязаных праверак URL па праксі можа паменшыць непатрэбную пераканфігурацыю. Трымайце вынік звязаным з маршрутам і URL, якія яго стварылі, уключаючы перанакіраванні і адказы з памылкамі.
Mechanize не ўзнаўляе выкананне JavaScript браўзерам. Выкарыстоўвайце сапраўдны браўзер, калі паводзіны, якія правяраюцца, залежаць ад скрыптоў, рэндэрынгу або аўтэнтыфікацыі, спецыфічнай для браўзера. Паспяховы HTTP-запыт праз праксі адказвае на вузкае пытанне: гэты агент здолеў зрабіць гэты запыт.