Foros del Web » Programando para Internet » PHP »

Recoger datos de un foro

Estas en el tema de Recoger datos de un foro en el foro de PHP en Foros del Web. Buenas. No sabía exactamente donde ponerlo porque no sé si con PHP se puede hacer o si se puede hacer con otro lenguaje de una ...
  #1 (permalink)  
Antiguo 05/01/2012, 09:24
 
Fecha de Ingreso: mayo-2011
Mensajes: 65
Antigüedad: 13 años
Puntos: 3
Recoger datos de un foro

Buenas. No sabía exactamente donde ponerlo porque no sé si con PHP se puede hacer o si se puede hacer con otro lenguaje de una forma más sencilla, pero como la página de la que quiero recoger los datos es en PHP, lo pondré aquí mismo. Creo que con PHP se debe poder, pero no tengo ni la menor idea de cómo.


La cosa es que yo me conecto como usuario en un foro. Pongamos que es www.web.com/foro. Dentro he de ingresar mi usuario y mi contraseña para conectarme. Ahora, lo que quiero es diseñar algo que me capture una serie de foros, es decir, que metiendo mi usuario y mi contraseña coja el contenido de x temas del foro y me lo guarde en una base de datos para tenerlos guardados y poderlos mostrar en distinto órden. El problema es que si no soy usuario, no puedo ver el contenido, por eso me interesa que el programa se logee con la cuenta que yo tengo en ese foro.

¿Esto se podría hacer con PHP? ¿Java? No busco que me hagáis un código, simplemente una base sobre qué me tengo que estudiar para conseguir hacerlo.
Muchas gracias, ¡saludos!
  #2 (permalink)  
Antiguo 05/01/2012, 09:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Recoger datos de un foro

Claro que es posible, lee lo siguiente:

Aportes, Sistemas en PHP -> [APORTE] file_get_contents(), cURL, HTTP_Request
  #3 (permalink)  
Antiguo 05/01/2012, 10:19
 
Fecha de Ingreso: mayo-2011
Mensajes: 65
Antigüedad: 13 años
Puntos: 3
Respuesta: Recoger datos de un foro

Pero eso, teniendo yo el usuario y la contraseña, ¿puedo hacer que mi script ingrese mi usuario y mi contraseña del foro para poder acceder él automáticamente? Porque yo mi cuenta la tengo el problema es que sin cuenta no se pueden ver los foros.
Si es así me has salvado, ¡muchas gracias de verdad!
  #4 (permalink)  
Antiguo 05/01/2012, 11:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Recoger datos de un foro

Lee el aporte, tiene ejemplo para hacer lo que necesitas.
  #5 (permalink)  
Antiguo 05/01/2012, 20:48
 
Fecha de Ingreso: mayo-2011
Mensajes: 65
Antigüedad: 13 años
Puntos: 3
Respuesta: Recoger datos de un foro

Nada, de verdad que no lo entiendo. Para practicar he cogido la web de twitter y he intentado sacar el contenido de los últimos tweets de la gente a la que sigo, mostrando prácticamente mi página de twitter en el navegador con cURL. He habilitado cURL y he usado lo siguiente:

Código PHP:
Ver original
  1. <?php  
  2.         $cookie_file_path = "c:/cookiefile";//o lo que sea
  3. $LOGINURL = "http://www.twitter.com";
  4. $agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)";
  5. $POSTFIELDS = 'session[username_or_email]=USUARIO&session[password]=CONTRASEÑA';
  6. //donde session[username_or_email] es el name del input del campo usuario
  7. //y session[password] es el name input del campo contraseña.
  8.  
  9. $ch = curl_init();
  10. curl_setopt($ch, CURLOPT_URL,$LOGINURL);
  11. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
  12. curl_setopt($ch, CURLOPT_USERAGENT, $agent);
  13. curl_setopt($ch, CURLOPT_POST, 1);
  14. curl_setopt($ch, CURLOPT_POSTFIELDS,$POSTFIELDS);
  15. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  16. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  17. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
  18. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
  19. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  20. $page = curl_exec ($ch);
  21. curl_close ($ch);
  22. echo $page;
  23.     ?>

Es la primera vez que me manejo con cURL y no sé si el código tal cual está ahí debería servir (según he leido en el tema que me has aportado debería funcionar. Pero me muestra la web principal de twitter como si no me hubiera conectado. Le estoy dando vueltas pero no consigo hacerlo funcionar.

Gracias.
  #6 (permalink)  
Antiguo 05/01/2012, 21:12
Avatar de dual3nigma
Colaborador
 
Fecha de Ingreso: febrero-2010
Ubicación: Ciudad de México
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 122
Respuesta: Recoger datos de un foro

Pero que demonios!!!

Mira si quieres obtener los tweets deberías usar la API de Twitter https://dev.twitter.com/

Recuerda que no puedes tomar datos de sitios nadamas así si no son para tu uso estrictamente personal. En diferente caso lo que querrías hacer es un cliente, los foros por lo general ofrecen feeds, si el dueño del foro no deja ver los temas mas que a usuarios legitimos es por algo. En todo caso podrías comunicarte con el dueño y ver la opción que habría de que realices un cliente con su consentimiento y tal vez te pueda dar algún tipo de acceso. De lo contrario tendrías que ponerte a estudiar primero sobre HTTP, Cookies y sesiones. Para poder manejar el login como lo hace un navegador.

Saludos!
  #7 (permalink)  
Antiguo 05/01/2012, 22:40
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: Recoger datos de un foro

Cita:
Iniciado por dual3nigma Ver Mensaje
Pero que demonios!!!

Mira si quieres obtener los tweets deberías usar la API de Twitter https://dev.twitter.com/

Recuerda que no puedes tomar datos de sitios nadamas así si no son para tu uso estrictamente personal. En diferente caso lo que querrías hacer es un cliente, los foros por lo general ofrecen feeds, si el dueño del foro no deja ver los temas mas que a usuarios legitimos es por algo. En todo caso podrías comunicarte con el dueño y ver la opción que habría de que realices un cliente con su consentimiento y tal vez te pueda dar algún tipo de acceso. De lo contrario tendrías que ponerte a estudiar primero sobre HTTP, Cookies y sesiones. Para poder manejar el login como lo hace un navegador.

Saludos!

El usuario hizo eso con twitter como una forma de ejemplo para probar y explicar lo que quiere conseguir... en el primer post de este hilo detalla exactamente lo que desea hacer... "sacar los post de un foro".

Saludos.
  #8 (permalink)  
Antiguo 06/01/2012, 05:21
 
Fecha de Ingreso: mayo-2011
Mensajes: 65
Antigüedad: 13 años
Puntos: 3
Respuesta: Recoger datos de un foro

Cita:
Iniciado por dual3nigma Ver Mensaje
Pero que demonios!!!

Mira si quieres obtener los tweets deberías usar la API de Twitter https://dev.twitter.com/

Recuerda que no puedes tomar datos de sitios nadamas así si no son para tu uso estrictamente personal. En diferente caso lo que querrías hacer es un cliente, los foros por lo general ofrecen feeds, si el dueño del foro no deja ver los temas mas que a usuarios legitimos es por algo. En todo caso podrías comunicarte con el dueño y ver la opción que habría de que realices un cliente con su consentimiento y tal vez te pueda dar algún tipo de acceso. De lo contrario tendrías que ponerte a estudiar primero sobre HTTP, Cookies y sesiones. Para poder manejar el login como lo hace un navegador.

Saludos!
Creo que no comprendes exactamente lo que quiero hacer..
Efectivamente, he hecho lo primero con twitter porque me parecía más sencillo y más visual. Además, es para mi uso personal, como ya he dicho arriba, evidentemente no quería compartir mis tweets con todo el mundo porque son míos y es algo privado. De hecho estoy trabajando con localhost, y voy a trabajar solo con localhost para el foro también, no tengo interés en mostrar mi trabajo a nadie porque es algo para uso estrictamente personal. Ahora, vamos a explicar más sobre el foro. El foro en el que lo quiero hcer (si hace falta permiso, tengo datos de acceso al hosting y a todo el código del foro, soy uno de los moderadores y tengo datos de acceso porque soy programador en ese foro) si es por permisos para sacar una serie de post los tengo. Veamos, en ese foro hacemos una serie de ejercicios 'virtuales' como entretenimiento, y la gente sube apuntes que tendríamos que estudiar para luego completar los ejercicios. El foro tiene deshabilitado el sistema de búsqueda para no ralentizarlo de más indexando todo, o por eso me pareció que lo hicieron. Lo que yo busco es simplemente un script que me muestre los apuntes y indexarlos yo mismo, y para eso no es que necesite. Lo quiero mostrar para mí mismo con mis propias opciones, y soy un usuario del foro, así que en eso tampoco hay problema.

Ahora, el foro es privado y si no me logueo no puedo accesar a los datos. Me puedo loguear manualmente con mi navegador como llevo haciendo estos años atrás, pero de qué me sirve si lo que pretendo es conseguir que lo haga el script. Ahora, lo único que quiero saber y estoy probando es que el script se loguee, nada más. Si yo tengo consentimiento para hacerlo, mi script debería tener consentimiento también por todo lo que he explicado arriba, ¿no? Porque en este caso, yo mismo soy mi script, me está mostrando las cosas con las que tengo acceso con mi usuario a mí. No hay ningún problema en eso.

Espero haber aclarado las dudas, saludos y gracias por la ayuda.

Última edición por Alex265; 06/01/2012 a las 05:37
  #9 (permalink)  
Antiguo 06/01/2012, 09:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Recoger datos de un foro

El problema con el script que planteas (el de Twitter) es que han cambiado su forma de hacer login, pero en teoría funciona igual con cualquier sitio que necesite usuario + contraseña, la idea es guardar las cookies y luego navegar al sitio donde se quiera y transmitir esas cookies (con el id de sesión) para que el foro te reconozca como logeado.

Saludos.

Etiquetas: foro, java
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:32.