Мне нужно очистить данные от игры facebook - используя ruby ​​

Пересмотрено (уточненный вопрос)

Я уже несколько дней пытаюсь выяснить, как извлечь конкретную информацию из игры на Facebook; однако я сталкивался с кирпичной стеной за кирпичной стеной. Насколько я могу судить, основная проблема заключается в следующем. Я могу использовать инструмент проверки элементов Chrome, чтобы вручную найти нужный мне html — он появляется внутри iframe. Однако, когда я пытаюсь очистить этот iframe, он оказывается пустым (за исключением свойств):

<iframe id="game_frame" name="game_frame" src="" scrolling="no" ...></iframe>

Это тот же результат, который я вижу, если использую браузерный инструмент «Просмотр исходного кода страницы». Я не понимаю, почему я не вижу данные в iframe. Ответ НЕ в том, что он добавляется впоследствии с помощью AJAX.(Я знаю это как потому, что «Просмотр исходного кода страницы» может считывать данные, которые были добавлены Ajax, так и потому, что я ждал, пока я не увижу страницу данных, прежде чем очистить ее, и ее все еще нет).

Происходит ли это из-за защиты от очистки экрана в Facebook, и если да, то есть ли способ обойти это? Или я просто что-то упускаю. Я программирую на рубине и безуспешно пробовал нокогири, потом механизировать, потом капибару.

Я не знаю, имеет ли это какое-то значение, но мне кажется, что iframe получает свои данные, используя ссылку iframe «game_frame», которая, по-видимому, относится к этому фрагменту html, который появляется ранее в документе:

<form id="hidden_login_form_1331840407" action="" method="POST" target="game_frame">
  <input type="hidden" name="signed_request" autocomplete="off" value="v6kIAsKTZa...">
  ...
</form>

Исходный вопрос

Я написал программу на ruby, которая использует nokogiri для извлечения данных из HTML-кода игры на Facebook. В настоящее время я получаю HTML с помощью инструмента «проверить элемент» Chrome, сохраняю его в файл и оттуда анализирую. Тем не менее, мне бы очень хотелось иметь доступ к информации изнутри ruby. Например, я бы передал программе имя страницы «www.gamename.com/...?id=12345», и она вошла бы в Facebook, перешла бы на эту страницу и очистила бы данные. В настоящее время, если я попытаюсь это сделать, это не сработает, потому что меня перенаправят на страницу входа в facebook. Как я могу пройти через экран входа в систему, чтобы получить доступ к нужным мне страницам?

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

Спасибо

5
задан Mike Schachter 19 March 2012 в 21:32
поделиться