Тримайте агент 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-проксі дає придатні значення хоста/порту для прикладу. Метод proxy також приймає ім'я користувача й пароль як необов'язкові третій і четвертий аргументи, коли цього потребує endpoint.
Повторно використовуйте налаштований агент для запитів, що належать до того самого сеансу перегляду. Він несе cookie та історію, а також мережеві налаштування. Зміна вихідного проксі сама по собі не створює нової ідентичності й не відкидає cookie входу.
Для кількох проксі-сеансів дайте кожному власний агент, замість того щоб перемикати один спільний агент під час роботи. Бібліотека також документує унікальні імена з'єднань, коли потрібні розділені SSL-з'єднання; ім'я конструктора в прикладі робить цей вибір явним.
Групування пов'язаних перевірок URL за проксі може зменшити зайве переналаштування. Тримайте результат пов'язаним із маршрутом і URL, які його створили, включно з переспрямуваннями та відповідями з помилкою.
Mechanize не відтворює виконання JavaScript браузером. Використовуйте справжній браузер, коли поведінка, що перевіряється, залежить від скриптів, рендерингу або автентифікації, специфічної для браузера. Успішне отримання HTTP через проксі відповідає на вужче питання: цей агент зміг виконати такий запит.