Revisada (pregunta clarificada)necesito para raspar los datos de un juego de facebook - usando rubí
He pasado unos días ya tratando de encontrar la manera de raspar la información específica de un juego de facebook; sin embargo, me encontré con una pared de ladrillos tras otra. Lo mejor que puedo decir es que el principal problema es el siguiente. Puedo usar la herramienta de elemento de inspección de Chrome para encontrar manualmente el html que necesito, parece anidado dentro de un iframe. Sin embargo, cuando intento y raspar que iframe, que está vacío (a excepción de propiedades):
<iframe id="game_frame" name="game_frame" src="" scrolling="no" ...></iframe>
Esta es la misma salida que veo si uso una herramienta de navegadores "Ver fuente de la página". No entiendo por qué no puedo ver los datos en el iframe. La respuesta NO es que sea añadida posteriormente por AJAX. (Lo sé porque "Ver el origen de la página" puede leer datos agregados por Ajax y también porque he b/c He esperado hasta que pueda ver la página de datos antes de rasparla y todavía no está allí).
¿Esto sucede debido al raspado anti pantalla de Facebook, y si es así hay una forma de evitarlo? O solo me estoy perdiendo algo. Programo en ruby y probé nokogiri, luego mecanicé y luego capibara sin éxito.
No sé si hace alguna diferencia, pero me parece que el iframe está obteniendo sus datos usando la referencia "game_frame" del iframe que aparentemente se refiere a esta pieza de html que aparece anteriormente en el documento:
<form id="hidden_login_form_1331840407" action="" method="POST" target="game_frame">
<input type="hidden" name="signed_request" autocomplete="off" value="v6kIAsKTZa...">
...
</form>
pregunta original
me escribió un programa que utiliza el rubí nokogiri para raspar los datos de HTML de un juego de facebook. Actualmente, obtengo el HTML usando la herramienta "inspeccionar elemento" de Chrome y lo guardo en un archivo y lo analizo desde allí. Sin embargo, me gustaría poder acceder a la información desde dentro de ruby. Por ejemplo, le pasaría al programa el nombre de la página "www.gamename.com/...?id=12345" y se ingresaría a Facebook, iría a esa página y borraría los datos. Actualmente, si intento eso, no funciona porque me redirigen a la página de inicio de sesión de Facebook. ¿Cómo puedo pasar la pantalla de inicio de sesión para acceder a la (s) página (s) que necesito?
Me gustaría hacer esto usando el código nokogiri que ya he escrito; sin embargo, si tengo que hacerlo, podría reescribirlo utilizando otra cosa. Actualmente, el programa es un programa independiente, no un programa de rieles, pero podría cambiar eso. He visto información que podría apuntarme en dirección a Omniauth, pero no estoy seguro de que sea eso lo que estoy buscando y también parece muy complicado. Espero que haya una solución más simple.
Gracias
Aunque no pude conseguir webkit para trabajar b/c de los problemas de construcción ventanas joya, pude usar Capybara para obtener la información que necesitaba. El punto más importante fue que debido a que la información que necesitaba estaba dentro de un marco, no apareció en el HTML de la página principal. Sin embargo, finalmente me di cuenta de que si utilizaba el método within_frame, podría acceder a la información dentro del marco y esto funcionó. –