Foros del Web » Programando para Internet » PHP »

Extraer dato dentro de una web con autentificación

Estas en el tema de Extraer dato dentro de una web con autentificación en el foro de PHP en Foros del Web. Hola buenas, soy Dani. Me acabo de iniciar con la programación PHP y estoy muy contento, yo vengo de Autoit y veo que hay cosas ...
  #1 (permalink)  
Antiguo 11/02/2011, 07:15
 
Fecha de Ingreso: febrero-2011
Mensajes: 45
Antigüedad: 13 años, 1 mes
Puntos: 3
Extraer dato dentro de una web con autentificación

Hola buenas, soy Dani.

Me acabo de iniciar con la programación PHP y estoy muy contento, yo vengo de Autoit y veo que hay cosas muy parecidas.

E buscado por la web y googleando e encontrado cosas pero por un error o por otro no consigo hacer lo que quiero.


Explicación. (Ejemplo simple)

Quiero sacar unos datos "Tienes 20 visitas"

esos datos están en la siguiente pagina "www.mipagina.com/login/visitias"

Lo que e intentado es lo siguiente.


Código PHP:
$web 'http:www.mipagina.com/login/visitias';

$contewebfile_get_contents($web);

$dato '|Donde este visitas>.*</Donde este visitas>|';

preg_match_all($dato$page$resulfinal);

echo 
$resulfinal[0][0];
echo 
$resulfinal[0][1];
echo 
$resulfinal[0][2];
echo 
$resulfinal[0][3];
echo 
$resulfinal[0][4];
echo 
$resulfinal[0][5];
echo 
$resulfinal[0][6];
echo 
$resulfinal[0][7]; 
Bien Si la página no tuviera Login iría perfecto, lo malo es que cuando file_get_contents se pone a leer, en este caso se queda en "www.mipagina.com/login.

Necesito que me digáis o me orientéis un poco, de cómo puedo enviarle el usuario y contraseña a los determinados campos y que luego aga la lectura.

"repito que soy novatisimo en php llevo 3 o 4 días. Cualquier sugerencia es bienvenida"

Dato que destacar.
Al ser visitas, son unos datos que van aumentando cada x, tambien me gustaria saber como hacer que la pagina php lo compruebe cada x tiempo.

Gracias.
  #2 (permalink)  
Antiguo 11/02/2011, 07:57
Avatar de jonasanx  
Fecha de Ingreso: enero-2011
Ubicación: La Via Lactea, Mexico, Mexico, Mexico
Mensajes: 134
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Extraer dato dentro de una web con autentificación

Mmmmm! podrías empezar leyendo sobre la librería cURL.

http://www.php.net/manual/es/intro.curl.php
  #3 (permalink)  
Antiguo 11/02/2011, 10:36
 
Fecha de Ingreso: febrero-2011
Mensajes: 45
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: Extraer dato dentro de una web con autentificación

jonasax Gracias, e estado viendo y e encontrado esto.

Código PHP:
<?php

//Upload a blank cookie.txt to the same directory as this file with a CHMOD/Permission to 777

login("Web de inicio de login","Código de la pagina que incluye user y pasword");

echo 
grab_page("http://laredhd.com/administrator/index.php");

function 
login($url,$data){
    
$fp fopen("cookie.txt""w");
    
fclose($fp);
    
$login curl_init();
    
curl_setopt($loginCURLOPT_COOKIEJAR"cookie.txt");
    
curl_setopt($loginCURLOPT_COOKIEFILE"cookie.txt");
    
curl_setopt($loginCURLOPT_TIMEOUT40000);
    
curl_setopt($loginCURLOPT_RETURNTRANSFERTRUE);
    
curl_setopt($loginCURLOPT_URL$url);
    
curl_setopt($loginCURLOPT_USERAGENT$_SERVER['HTTP_USER_AGENT']);
    
curl_setopt($loginCURLOPT_FOLLOWLOCATIONTRUE);
    
curl_setopt($loginCURLOPT_POSTTRUE);
    
curl_setopt($loginCURLOPT_POSTFIELDS$data);
    
ob_start();
    return 
curl_exec ($login);
    
ob_end_clean();
    
curl_close ($login);
    unset(
$login);    
}                  

function 
grab_page($site){
    
$ch curl_init();
    
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
    
curl_setopt($chCURLOPT_USERAGENT$_SERVER['HTTP_USER_AGENT']);
    
curl_setopt($chCURLOPT_TIMEOUT40);
    
curl_setopt($chCURLOPT_COOKIEFILE"cookie.txt");
    
curl_setopt($chCURLOPT_URL$site);
    
ob_start();
    return 
curl_exec ($ch);
    
ob_end_clean();
    
curl_close ($ch);
}

function 
post_data($site,$data){
    
$datapost curl_init();
    
$headers = array("Expect:");
    
curl_setopt($datapostCURLOPT_URL$site);
    
curl_setopt($datapostCURLOPT_TIMEOUT40000);
    
curl_setopt($datapostCURLOPT_HEADERTRUE);
    
curl_setopt($datapostCURLOPT_HTTPHEADER$headers); 
    
curl_setopt($datapostCURLOPT_USERAGENT$_SERVER['HTTP_USER_AGENT']);
    
curl_setopt($datapostCURLOPT_POSTTRUE);
    
curl_setopt($datapostCURLOPT_POSTFIELDS$data);
    
curl_setopt($datapostCURLOPT_COOKIEFILE"cookie.txt");
    
ob_start();
    return 
curl_exec ($datapost);
    
ob_end_clean();
    
curl_close ($datapost);
    unset(
$datapost);    
}

?>

Con esto, e conseguido entrar en cierta paginas, pagina pero en la que necesito no, me funciona.

Sabéis alguna otra manera?
  #4 (permalink)  
Antiguo 11/02/2011, 10:41
 
Fecha de Ingreso: enero-2011
Mensajes: 58
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Extraer dato dentro de una web con autentificación

Se me ocurre... que en tu login php puedas pasar la identificación por get, es un poco cutre.. pero te quedaría así:

$miUrl = 'http://laredhd.com/administrator/index.php?user=miuser&mipassword=1234';

No se.. es sólo una idea :)
  #5 (permalink)  
Antiguo 11/02/2011, 12:30
 
Fecha de Ingreso: febrero-2011
Mensajes: 45
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: Extraer dato dentro de una web con autentificación

Umm, me temo que por ese método no funciona, o no me sale XD.
  #6 (permalink)  
Antiguo 11/02/2011, 12:34
Avatar de jonasanx  
Fecha de Ingreso: enero-2011
Ubicación: La Via Lactea, Mexico, Mexico, Mexico
Mensajes: 134
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Extraer dato dentro de una web con autentificación

Cita:
Iniciado por psicologia24 Ver Mensaje
Umm, me temo que por ese método no funciona, o no me sale XD.
Hacer lo que tu quieres no es tan fácil, muchos usan ese método para conseguir usuarios y contraseñas por fuerza bruta, así que es de esperarse que con solo intentar un par de horas no lo conseguirías.

Asi que animo.
  #7 (permalink)  
Antiguo 12/02/2011, 06:29
 
Fecha de Ingreso: febrero-2011
Mensajes: 45
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: Extraer dato dentro de una web con autentificación

Por el momento no consigo hacer nada jonasanx, pero como tu dices, hay que seguir intentándolo.

Si alguien, me puede decir otra forma de hacerlo o alguna pequeña ayuda.


Saludos.
  #8 (permalink)  
Antiguo 12/02/2011, 08:56
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 8 meses
Puntos: 416
Respuesta: Extraer dato dentro de una web con autentificación

Revisa este aporte, te puede ser util:
http://www.forosdelweb.com/f18/aport...equest-724214/
  #9 (permalink)  
Antiguo 12/02/2011, 11:20
 
Fecha de Ingreso: febrero-2011
Mensajes: 45
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: Extraer dato dentro de una web con autentificación

Gracias Ronruby, por fin lo e conseguido. funciona perfecto.

Lo pongo por si alguien lo esta buscando:

Código PHP:
<?php

$user 
"";
$pass "";


$cookie_file_path "cookie.txt";//o lo que sea 
$LOGINURL "";
$agent "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)"
$POSTFIELDS "";//o lo que sea 
 
$ch curl_init(); 
curl_setopt($chCURLOPT_URL,$LOGINURL); 
curl_setopt($chCURLOPT_SSL_VERIFYHOST2); 
curl_setopt($chCURLOPT_USERAGENT$agent); 
curl_setopt($chCURLOPT_POST1); 
curl_setopt($chCURLOPT_POSTFIELDS,$POSTFIELDS); 
curl_setopt($chCURLOPT_RETURNTRANSFER1); 
curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
curl_setopt($chCURLOPT_COOKIEFILE$cookie_file_path); 
curl_setopt($chCURLOPT_COOKIEJAR$cookie_file_path); 
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE); 
$page curl_exec ($ch); 
curl_close ($ch);
echo 
$page;

?>

Ahora una pregunta tonta, sabéis como enviar una URL al cumplirse ciertas condiciones.

Me explico:


Código PHP:
$dato11

Si $dato1 
1
        Acceder a la URL 
("www.pagina.com")
Si $dato1 >1
        Volver a comprobar 
Lo que no se hacer y seguro que es facilisimo es, que "www.pagina.com" acceda pero de forma oculta, digamos que al entrar a esa pagina sucede algo pero no quiero interactuar con ella ni nada , solo ejecutarla y salir..

Saludos.

Etiquetas: dato, extraer
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 23:29.