Buenas tardes,
He creado un script en php que me extrae cierto contenido del codigo fuente de cierta web.. :-X
Extraigo el código fuente con Fopen y luego lo voy tratando con funciones de string.
$fo= fopen("$url","r") ; //obtengo el codigo fuente
while (!feof($fo)) //Leo linea por linea hasta el final
{
$fuente .= fgets($fo, 4096);
}
Bien, pues resulta que llegando al paso final del script me doy cuenta de que hay una parte del contenido web que no esta en el código fuente, o mejor dicho esta cifrado y se muestra mediante javascript, no he localizado la función que realiza esto pero me imagino que lo muestra mediante javascript ya que en el codigo fuente no aparece este contenido.
Mi pregunta es la siguiente, como puede recoger este contenido mediante php?
¿Hay alguna manera de obtener el código generado por javascript desde php?
¿Alguien se ha encontrado con un problema parecido y me puede guiar un poco para resolverlo?
Gracias, un saludo.
Los códigos de HTML y Js te los tiene que devolver si o sí, ya que ambos son del lado del cliente. Lo único que nunca podrás tener es el PHP porque se maneja por el servidor.
Por cierto, en firefox o alguno click derecho -> Ver código fuente y verás que el código en js se visualiza, es decir, que si no me muestras tu code no se que decir xD.
Hay una función de WHK que permite hacer eso. La modifique porque también la necesitaba.
function fromTo($sFrom, $sTo, $sContent){
# Start Script
# Created by: WHK
# Modified by: Shell Root
# Description: It can extract the contents from one part to another
if(preg_match($sFrom ,$sContent)){
$sReturn = explode($sFrom, $sContent);
foreach($sReturn as $sCompare){
$sCompare = explode($sTo, $sCompare);
if($sCompare = $sCompare[0]){ $sBack[] = $sCompare; }
unset($sCompare);
}
return $sBack[1];
}else{ return false; }
# End Script
}
$sWeb = file_get_contents("http://127.0.0.1/PoC/PoC.html");
$sWeb = fromTo("<script languaje='javascript'>", "</script>", $sWeb);
print( $sWeb );
Contenido PoC.html:
<html>
<head>
<script languaje='javascript'>
function sAlert(){ alert('PoC Loading'); }
function sWrite(){ document.write('PoC'); }
</script>
</head>
<body onLoad='sAlert();'>
<h1> PoC </h1>
</body>
</html>
Resultado:
alex@shellroot:~/Escritorio$ php PoC.php
function sAlert(){ alert('PoC Loading'); }
function sWrite(){ document.write('PoC'); }
Grscias WHK, ¿podrias comentar un poco el funcionamiento de la función?
Un saludo.
la funcion recibe 3 parametros
desde donde extraer
hasta donde extraer (puede ser entre 2 tags)
el texto del cual extraer