Я использую Mechanize внутри задачи rake, которая запускается надстройкой планировщика к моему ruby-приложению на Heroku. В сценарии я захожу на веб-страницу, которая работала до недавнего времени, когда сценарий больше не мог войти в систему. Когда я начал отладку, Mechanize показывает разные поля формы, когда я запускаю скрипт в консоли heroku, чем на моей локальной консоли.
Локальная консоль ruby показывает следующие поля:
>> asf.fields.each do |f| puts f.name end
__VIEWSTATE
__PREVIOUSPAGE
__EVENTVALIDATION
login$field
password$field
Консоль Heroku показывает одно дополнительное поле, которое НЕ отображается в исходном коде html:
>> asf.fields.each do |f| puts f.name end
__VIEWSTATE
__PREVIOUSPAGE
__EVENTVALIDATION
login$field
password$field
captcha$txtCaptcha
Когда я выдаю:
>> asf.click_button
Обновление: я безуспешно пытался изменить пользовательский агент на несколько разных псевдонимов браузера. Похоже, что IP-адрес от Heroku вызывает ввод капчи. Можно ли сделать запрос через прокси-сервер или использовать Tor, чтобы скрыть IP-адрес?