Foros del Web » Programando para Internet » PHP »

Problema con DOM en PHP

Estas en el tema de Problema con DOM en PHP en el foro de PHP en Foros del Web. necesito sacar los objetos <li> de una web accediendo al DOM, casi me vuelvo loco tratando de sacarlos de una busqueda de google pero increiblemente ...
  #1 (permalink)  
Antiguo 24/06/2013, 07:45
Avatar de Neilpl26  
Fecha de Ingreso: octubre-2008
Mensajes: 6
Antigüedad: 15 años, 6 meses
Puntos: 0
Pregunta Problema con DOM en PHP

necesito sacar los objetos <li> de una web accediendo al DOM, casi me vuelvo loco tratando de sacarlos de una busqueda de google pero increiblemente para esa pagina no funciona el codigo fuente que adjunto, por suerte en otras paginas si funciona, por ejemplo yahoo

Código:
	$lista_de_yahoo = array();
	$doc = new DOMDocument();
	@$doc->loadHTMLFile('http://search.yahoo.com/search?p=DOM');
	$xpath = new DOMXPath($doc);
	$titulo = "//div[@id='web']/ol/li";
	$entradas = $xpath->query($titulo);
	foreach ($entradas as $entrada) {
		array_push($lista_de_yahoo,$doc->saveHTML($entrada));
		}

	echo '<pre>';
	print_r($lista_de_yahoo);
	echo '</pre>';
ahora lo que quisiera saber es porque no funciona para google

Código:
	
	$lista_de_google = array();
	$doc = new DOMDocument();
	$doc->loadHTMLFile("http://www.google.com.cu/search?q=DOM");
	$xpath = new DOMXPath($doc);
	$titulo = "//ol[@id='rso']/li";
	$entradas = $xpath->query($titulo);
	foreach ($entradas as $entrada) {
		array_push($lista_de_google,$doc->saveHTML($entrada));
	}
	echo '<pre>';
	print_r($lista_de_google);
	echo '</pre>';
Espero que me puedan ayudar
Muchas Gracias
  #2 (permalink)  
Antiguo 24/06/2013, 07:51
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Problema con DOM en PHP

loadHTMLFile() estas seguro te trae el HTML de Google ? a veces no se dejan parsear asi de facil

Ademas ojo que no podras hacer muchas descargas seguidas ni con Curl en Google
--

Otra cosa: no ocultes los errores con '@', sino haz esto:

Cita:
$doc->strictErrorChecking = FALSE;
justo antes de loadHTMLFile()
__________________
Salu2!

Última edición por Italico76; 24/06/2013 a las 07:58
  #3 (permalink)  
Antiguo 24/06/2013, 08:07
Avatar de Neilpl26  
Fecha de Ingreso: octubre-2008
Mensajes: 6
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con DOM en PHP

Hola italico76, gracias por responderme tan rapido, lo que mas me intriga es porque funciona en todos los otros sitios, por ejemplo yahoo y no funciona en google, es como que no se deja parsear, porque cuando descargo la pagina con file_get_content y luego imprimo la variable si se imprime todo

si necesitas un diseñador web, aqui me tienes

Etiquetas: dom, 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 10:31.