Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Extraer dato de una web

Estas en el tema de Extraer dato de una web en el foro de PHP en Foros del Web. Wenas! Yo siempre me tengo que pelear con el "simple_html_dom.php" para conseguir los datos que quiero... jamás me funciona a la primera. tengo este código... ...
  #1 (permalink)  
Antiguo 27/05/2014, 11:11
(Desactivado)
 
Fecha de Ingreso: junio-2013
Ubicación: Santo Domingo de Guzmán
Mensajes: 35
Antigüedad: 10 años, 10 meses
Puntos: 1
Extraer dato de una web

Wenas!

Yo siempre me tengo que pelear con el "simple_html_dom.php" para conseguir los datos que quiero... jamás me funciona a la primera.

tengo este código...
Código PHP:
function getUserId($var) {    
        
        
$htmlCode file_get_html('http://'.$var.'.unetenet.com');
        
print_r($htmlCode);

        if(isset(
$htmlCode)) {

              
$data $htmlCode->find('span[class="letra_1"]');
              if(isset(
$data)) {
    
                  foreach(
$data as $info) {
                    
$item['name']           = $info->find('b'0)->plaintext;
                    
$item['membership']     = $info->find('b'1)->plaintext;
                    
$data[] = $item;
                  }   
              }
              
//Imprimo el resultado
              
echo "<pre>";
              
print_r($data);
              echo 
"</pre>";
        }

Y esta es la parte del código de la web que se parsea desde mi función
Código HTML:
<body style="position: relative; min-height: 100%; top: 0px;">
		<table width="980" border="0" cellspacing="0" cellpadding="0" class="fondo_principal" align="center">
		  <tbody><tr>
			<td>
			<table width="900" border="0" cellspacing="0" cellpadding="0" align="center">
			  <tbody><tr>
			    <td height="43" colspan="2">
				<span class="letra_1">Bienvenido al Sitio de <b>Perico de los palotes</b>  Miembro <b>"Premium"</b></span> 
Pues bien, no hay manera de que yo pueda extraer los datos ya que solo en esta parte
Código PHP:
$htmlCode file_get_html('http://'.$var.'.unetenet.com'); 
la web me salta que el proceso no ha tenido éxito con lo cual no puedo recuperar nada.

Alguna ayudita...?
  #2 (permalink)  
Antiguo 27/05/2014, 13:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Extraer dato de una web

Pues como nos es imposible adivinar el error que recibes veo complicado orientarte al respecto, así como tampoco podemos adivinar que hace exactamente el código de file_get_html() pues obviamente no todos lo conocemos.

Si tienes algo más inteligente que compartir que un "Alguna ayudita...?" sería mucho mejor.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 27/05/2014, 15:39
(Desactivado)
 
Fecha de Ingreso: junio-2013
Ubicación: Santo Domingo de Guzmán
Mensajes: 35
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Extraer dato de una web

Bueno, al principio dije que quiero "Parsear" una web para coger un dato en concreto. Si no sabes que es parsear pues porfavor abstente de responder ya que obviamente no vas a poder aclararme nada, lógico no?

Y este es el error: Request unsuccessful. Incapsula incident ID: 168000970098091317-416922474117596696

Bueno, ni si quiera es un error así que se muestre como los demás. De hecho no ves ese error hasta que imprimes la variable.

Ese error no me sale si parseo otra web con la que trabajo en otro tema diferente.

Última edición por cdiazr; 27/05/2014 a las 15:46
  #4 (permalink)  
Antiguo 27/05/2014, 15:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Extraer dato de una web

Cita:
Iniciado por cdiazr Ver Mensaje
Bueno, al principio dije que quiero "Parsear" una web para coger un dato en concreto. Si no sabes que es parsear pues porfavor abstente de responder ya que obviamente no vas a poder aclararme nada, lógico no?
En primer lugar abstente de decir tonterías, en ningún momento te falté el respeto ni pregunté nada acerca de "parsear", sólo que yo no conozco que hace exactamente la función file_get_html() y eso fue lo que te he preguntado ¿acaso se ha entendido mal mi pregunta?

La busqué en el manual y no existe, así que ten un poco más de respeto pues mi inquietud ha sido genuina y sin afán de minimizar tus capacidades ni nada por el estilo.

Cita:
Iniciado por cdiazr Ver Mensaje
Y este es el error: Request unsuccessful. Incapsula incident ID: 168000970098091317-416922474117596696
Gracias por compartir el mensaje de error, es lo más inteligente que has compartido hasta el momento, sin dicho mensaje podríamos pasar horas tratando de adivinar el problema o leer tu mente sin resultado alguno.

Volviendo al tema, no parece que el error sea de código, y cómo no conozco el funcionamiento de file_get_html() no sabría decirte que te trata de indicar el error.

¿Acaso no viene un manual donde explique qué significa dicho error?

A simple vista no creo que sea un error de código, es decir, no creo que puedas solucionar nada modificando tu código.

Me explico: a todas luces el error parece que indica un problema de, digamos, conexión con el recurso a leer (por lo que se entiende del inglés).

Así que mientras no sepamos que hace la función file_get_html() todo es una caja oscura, tu sabrás qué tipo de ayuda necesitas así que no te molestes y procura hacer preguntas más inteligentes.

Gracias.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 27/05/2014, 15:55
(Desactivado)
 
Fecha de Ingreso: junio-2013
Ubicación: Santo Domingo de Guzmán
Mensajes: 35
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Extraer dato de una web

En ningún momento he faltado al respeto, yo no respondo a ningún tema si no sé de lo que se habla, solo he dicho eso.

Eso es lo que me pedías...

Cita:
Si tienes algo más inteligente que compartir...
Yo las dudas que suelo tener no son de manual, ya que para eso está el manual, por desgracia yo siempre intento hacer cosas que no estan ahí, por eso pregunto...

Al prinicipio de mi pregunta también expongo con qué librería estoy trabajando para realizar el parseo "simple_html_dom.php" y [URL="http://simplehtmldom.sourceforge.net/manual.htm"]aquí su manual[/URL]

Lo que quiero hacer creo que también se sale de ese manual ya que no he visto la respuesta por ningún lado.
  #6 (permalink)  
Antiguo 27/05/2014, 16:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Extraer dato de una web

Cita:
Iniciado por cdiazr Ver Mensaje
[...] Al prinicipio de mi pregunta también expongo con qué librería estoy trabajando para realizar el parseo "simple_html_dom.php" y [URL="http://simplehtmldom.sourceforge.net/manual.htm"]aquí su manual[/URL][...]
Claro, compartiste el nombre de la función mas no el enlace en su momento, gracias por hacerlo, ahora sí que se entiende mejor el problema ¿no te parece?

Volviendo al error, ¿si el manual no lo explica qué habríamos de saber nosotros?

Estamos igual que tu.

Lo curioso, es que dices que dicha función no da problemas con otras URLs pero sí con algunas otras, en dado caso ¿serías tan amable de compartir una URL que no te sirva para analizarla o hay que seguir adivinando?

Mientras menos información, pistas o detalles des es más complicado entender lo que sucede, ¿tu qué harías en nuestro lugar?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 27/05/2014, 16:07
(Desactivado)
 
Fecha de Ingreso: junio-2013
Ubicación: Santo Domingo de Guzmán
Mensajes: 35
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Extraer dato de una web

Pues porque se supone que vosotros sois los que mas sabeis y los que más ostias os habeis pegado y se podría decir que "practicamente" ni cometeis errores pq sabeis lo que estais haciendo en todo momento. Con lo cual apenas necesitais consultar al manual. Si no sabes ya de que va ese error, pues lo dejamos aquí.

Cualquier otra web no me da ese problema, solo esa, quizás sea pq es una web creada para un determinado miembro ya que estamos hablando de un subdominio. Pero si puedo sacar el html de esa web, no entiendo pq no puedo extraer un dato de ese mismo código.
  #8 (permalink)  
Antiguo 27/05/2014, 16:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Extraer dato de una web

A lo que voy es que podríamos intentar replicar el problema, para analizar desde otro ángulo, pero si sigues sin compartir un enlace real para ello ¿qué podemos hacer para ayudarte?

Que tengamos experiencia no nos hace eruditos, y tampoco tenemos en mente todas las librerías del mundo, ni los manuales, lo único que tenemos es la experiencia.

Para problemas tan particulares como el tuyo no queda más que intentar, comparte la librería y un ejemplo con una URL que falle, sólo así podremos ver lo que nos es imposible adivinar.

Te lo pongo fácil: comparte un ejemplo básico que podamos replicar y ya veremos lo que sucede.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 27/05/2014, 16:18
(Desactivado)
 
Fecha de Ingreso: junio-2013
Ubicación: Santo Domingo de Guzmán
Mensajes: 35
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Extraer dato de una web

la web que quiero parsear es http://cdiazr.unetenet.com y el dato que quiero extraer es el nombre completo y el tipo de membresía, en este caso "Premium" y que esos dos datos los almacene en el array $data que ya está en el código.

La librería la descargas desde aquí http://simplehtmldom.sourceforge.net/manual.htm
  #10 (permalink)  
Antiguo 27/05/2014, 16:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Extraer dato de una web

¿Qué tan complicado era compartir eso desde un inicio?

Nos hubiéramos ahorrado las boludeces.

Bien, pues revisando dicho enlace sin la librería es notable el hecho de que no existe ningún elemento con la clase "letra_1", así que no me sorprendería que no obtengas lo que buscas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 27/05/2014, 19:38
(Desactivado)
 
Fecha de Ingreso: junio-2013
Ubicación: Santo Domingo de Guzmán
Mensajes: 35
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Extraer dato de una web

Ostras pateketrueke... yo pongo la info, otra cosa es que no lo leas... al inicio de este post ya publico la parte del body del html que tengo que parsear y la última linea que comparto es donde se encuentra el <span class="letra_1">.

¿Dónde está el error pues?
  #12 (permalink)  
Antiguo 27/05/2014, 19:42
(Desactivado)
 
Fecha de Ingreso: junio-2013
Ubicación: Santo Domingo de Guzmán
Mensajes: 35
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Extraer dato de una web

También es bienvenido otra forma de extraer esos dos datos de una web que no sea utilizando la librería simple_html_dom, no me importa si es en java (eso sí que no lo domino aunque me podría apañar)....
  #13 (permalink)  
Antiguo 27/05/2014, 19:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Extraer dato de una web

Cita:
¿Dónde está el error pues?
Pues revisa el código HTML del enlace que dices: http://cdiazr.unetenet.com

En ninguna parte sale el fragmento de HTML que estás tratando de extraer, ¿acaso no te das cuenta?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 27/05/2014, 21:38
(Desactivado)
 
Fecha de Ingreso: junio-2013
Ubicación: Santo Domingo de Guzmán
Mensajes: 35
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Extraer dato de una web

Cita:
Iniciado por pateketrueke Ver Mensaje
En ninguna parte sale el fragmento de HTML que estás tratando de extraer, ¿acaso no te das cuenta?
El que no se dá cuenta eres tú

<span class="letra_1">
Código HTML:
Bienvenido al Sitio de <b>Perico de los palotes</b>  Miembro <b>"Premium"</b></span> 
Espero que ahora lo veas bien!

Y he aquí, de nuevo, dónde se encuentra en la web dentro del <body>
Código HTML:
<body style="position: relative; min-height: 100%; top: 0px;">
		<table width="980" border="0" cellspacing="0" cellpadding="0" class="fondo_principal" align="center">
		  <tbody><tr>
			<td>
			<table width="900" border="0" cellspacing="0" cellpadding="0" align="center">
			  <tbody><tr>
			    <td height="43" colspan="2">
				<span class="letra_1">Bienvenido al Sitio de <b>Perico de los palotes</b>  Miembro <b>"Premium"</b></span> 
Lee la clase de la estiqueta span que aparace en la última línea del html que comparto. Esta etiqueta la parseo con
Código PHP:
$data $htmlCode->find('span[class="letra_1"]'); 
PERO NO FUNCIONA Y ME PREGUNTO DÓNDE ESTÁ EL ERROR....

Última edición por cdiazr; 27/05/2014 a las 21:44
  #15 (permalink)  
Antiguo 27/05/2014, 21:47
(Desactivado)
 
Fecha de Ingreso: junio-2013
Ubicación: Santo Domingo de Guzmán
Mensajes: 35
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Extraer dato de una web

Lo único que se me ocurre es que la librería no parsee directamente etiquetas SPAN, quizás tenga que parsear al <td> especificando la anchura de 43 y que extraiga el span a una variable y después ya con otro script separar el nombre y la palabra Premium... no?
  #16 (permalink)  
Antiguo 27/05/2014, 22:45
(Desactivado)
 
Fecha de Ingreso: junio-2013
Ubicación: Santo Domingo de Guzmán
Mensajes: 35
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Extraer dato de una web

He probado con cambiar la web a parsear y como te dije al principio funciona con otra, en este caso escogí [URL]http://www.myuinvest.tk[/URL] y al hacer echo a $htmlCode me imprime la web...

Código PHP:
$htmlCode file_get_html('http://www.myuinvest.tk');
        echo 
$htmlCode
  #17 (permalink)  
Antiguo 28/05/2014, 09:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Extraer dato de una web

Cita:
Iniciado por cdiazr Ver Mensaje
El que no se dá cuenta eres tú [...]
No me digas.

Ejecuta esto y nota los resultados.
Código PHP:
Ver original
  1. $html = file_get_contents('http://cdiazr.unetenet.com');
  2. var_dump(strpos($html, 'letra_1'));

Devuelve bool(false) porque precisamente no existe ninguna coincidencia con "letra_1", así que o estamos viendo cosas diferentes o alguien aquí se está engañando sólo.

Y vamos, mi código de ejemplo lo único que hace es leer dicha URL y verificar la presencia de "letra_1" nada más.

Abro la misma URL en Firefox y me salta un "Security check", lo abro en Chrome y al revisar el código sí sale "letra_1" así que sencillamente dicho sitio está bloqueando cierto tipo de conexiones.

El problema no es la librería ni tu código, el problema radica en el sitio mismo que no se deja leer tan fácil.

Mientras sigas ignorando detalles no resolverás nada.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #18 (permalink)  
Antiguo 28/05/2014, 19:22
(Desactivado)
 
Fecha de Ingreso: junio-2013
Ubicación: Santo Domingo de Guzmán
Mensajes: 35
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Extraer dato de una web

Ahhh!!! Por fin admites que si existe "letra_1", tan dificil es admitirlo.. no pasa nada ehh somos humanos aunque has tenido que editar tu ultima respuesta ya que te has dado cuenta que "class_1" efectivamente no existe, no necesito hacer var_dump para saberlo y tampoco hago var_dump para ver si existelo que busco en un codigo, tengo ojos, son mas lentos peri mas efectivos y con ctrl+f mas la interaccion humana es mas efectiva que una simple funcion para comprovar si se encuentra la cadena que se busca dentro del codigo.

El pc es rapido pero tonto, asi que para el proximo que pida consejos utiliza los ojos paea fijarte bien, te ahorraras tiempo y esfuerzo discutiendo con el otro, de ser asi, hubieses llegado a la conclusion, desde el principio, de que la web es la que da problemas, no mi codigo.

Gracias, ha sido interesante.

Etiquetas: dato, html
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 18:19.