Подтвердить что ты не робот

Использование Ruby script для входа на сайт через https

Хорошо, так вот сделка: я работаю над Ruby-приложением, которое возьмет данные с веб-сайта и объединит эти данные в XML файл.

Веб-сайт, на котором я должен брать данные, не имеет каких-либо API-интерфейсов, которые я могу использовать, поэтому единственное, что я могу придумать, это войти на сайт, последовательно загружать страницы, на которых есть нужные мне данные (в этом case, PMs, я хочу их архивировать), а затем проанализировать возвращенный HTML.

Проблема заключается в том, что я не знаю, как можно программно моделировать сеанс входа в систему.

У кого-нибудь есть какие-либо советы или какие-либо проверенные методы, которые я мог бы использовать для успешного входа на страницу https, а затем программную загрузку страниц с сайта с использованием временного сеанса cookie из входа? Это не должно быть единственным решением Ruby - я просто хочу знать, как я могу это сделать. И если это помогает, рассматриваемый веб-сайт - это тот, который использует службу Microsoft.NET Passport в качестве механизма входа/сессии.

Любые материалы по этому вопросу приветствуются. Спасибо.

4b9b3361

Ответ 1

Mechanize

Механизация - это рубиновая библиотека, которая имитирует поведение веб-браузера. Вы можете щелкнуть ссылки, заполнить формы и отправить их. У него даже есть куча истории и воспоминаний. Кажется, ваша проблема может быть легко решена с помощью механизации.

Следующий пример взят из http://mechanize.rubyforge.org:

require 'rubygems'
require 'mechanize'

a = Mechanize.new
a.get('http://rubyforge.org/') do |page|
  # Click the login link
  login_page = a.click(page.link_with(:text => /Log In/))

  # Submit the login form
  my_page = login_page.form_with(:action => '/account/login.php') do |f|
    f.form_loginname  = ARGV[0]
    f.form_pw         = ARGV[1]
  end.click_button

  my_page.links.each do |link|
    text = link.text.strip
    next unless text.length > 0
    puts text
  end
end

Ответ 2

Вы можете попробовать использовать wget для извлечения страницы. Вы можете проанализировать процесс входа в систему с помощью этого приложения. Www.portswigger.net/proxy/.

Ответ 3

Для чего это стоит, вы можете проверить Webrat. Он предназначен для использования инструмента для автоматических приемочных испытаний, но я думаю, вы могли бы использовать его для имитации заполнения полей входа в систему, затем щелчка по ссылкам по их именам и захват необходимого HTML в виде строки. Не пробовал делать что-нибудь подобное, тo.