Пересмотрен (уточненный вопрос)
Я потратил несколько дней, пытаясь выяснить, как извлечь конкретную информацию из игры на Facebook; Тем не менее, я столкнулся с кирпичной стеной за кирпичной стеной. Насколько я могу судить, главная проблема заключается в следующем. Я могу использовать инструмент Chrome для проверки элементов, чтобы вручную найти нужный мне HTML-файл - он расположен внутри iframe. Однако, когда я пытаюсь очистить этот iframe, он пуст (кроме свойств):
<iframe id="game_frame" name="game_frame" src="" scrolling="no" ...></iframe>
Это тот же вывод, который я вижу, если использую браузер «Просмотр источника страницы».
Я не понимаю, почему я не вижу данные в iframe. Ответ НЕ в том, что AJAX добавляет его позже. (Я знаю, что и потому, что «Просмотр источника страницы» может читать данные, которые были добавлены Ajax, а также потому, что у меня есть b / c, я ждал до тех пор, пока не смогу увидеть страницу данных, прежде чем очистить ее, а ее все еще нет).
Это происходит из-за антискриптового фейсбука, и если да, то есть ли способ обойти это? Или я просто что-то упустил. Я программирую на рубине и пробовал нокогири, затем механизировал, потом капибара безуспешно.
Я не знаю, имеет ли это какое-то значение, но мне кажется, что 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, сохраняю его в файл и анализирую его оттуда. Тем не менее, я бы очень хотел получить доступ к информации из рубина. Например, я передаю программе имя страницы "www.gamename.com/...?id=12345", и она входит в Facebook, заходит на эту страницу и очищает данные. В настоящее время, если я попробую это сделать, это не сработает, потому что я перенаправлен на страницу входа в Facebook. Как пройти через экран входа в систему для доступа к нужным мне страницам?
Я хотел бы сделать это, используя код нокогири, который я уже написал; однако, если бы мне пришлось, я мог бы переписать это, используя что-то еще. В настоящее время эта программа является отдельной, а не рельсовой, но я могу это изменить. Я вижу некоторую информацию, которая может указывать мне направление Омниавта, но я не уверен, что это то, что я ищу, и это также выглядит очень сложно. Я надеюсь, что есть более простое решение.
Спасибо