Foros del Web » Programando para Internet » PHP »

[CONSULTA] Guardar código fuente HTML en archivo de texto.

Estas en el tema de [CONSULTA] Guardar código fuente HTML en archivo de texto. en el foro de PHP en Foros del Web. Buenos días! Estoy empezando en el mundo de PHP y tengo una duda que necesito que me ayuden a resolver. Necesito hacer un script que ...
  #1 (permalink)  
Antiguo 07/05/2012, 10:46
 
Fecha de Ingreso: mayo-2012
Mensajes: 5
Antigüedad: 12 años, 6 meses
Puntos: 0
[CONSULTA] Guardar código fuente HTML en archivo de texto.

Buenos días!

Estoy empezando en el mundo de PHP y tengo una duda que necesito que me ayuden a resolver.

Necesito hacer un script que me guarde el código fuente HTML de una página. En realidad, necesito de varias páginas, pero poder empezar con una sería muy bueno.

La idea es que ese código HTML después lo pueda parsear para hacer algunos análisis. Por lo que necesito poder tenerlo en un archivo txt.

Lo que hice hasta ahora es lo siguiente:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $Fcodigo = fopen("codigoHTML.txt","a")
  4. or die ("Problema al crear archivo de texto");
  5. chmod($FCodigo,777);
  6.  
  7. $Archivo = fopen("http://soporte.miarroba.es/17451/5029099-coseguir-codigo-fuente-de-html/","r")
  8. or die("Problemas al guardar URL");
  9.  
  10. while (!feof($Archivo))
  11. {
  12.     $linea = fgets($Archivo);
  13.     fwrite($FCodigo,$linea);
  14. }
  15.  
  16. fclose($Archivo);
  17. fclose($Fcodigo);
  18.  
  19. ?>

Me está dando un error cuando quiero hacer el fwrite del archivo $FCodigo y no me guarda nada. Si hago un "echo" de $linea, me muestra la página por lo que entiendo que el código HTML lo está leyendo.

Estoy muy errado con lo que estoy haciendo? Hay alguna otra forma?

Desde ya, cualquier ayudar que me puedan dar con el tema, se los voy a agradecer mucho.

Saludos!
  #2 (permalink)  
Antiguo 07/05/2012, 10:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: [CONSULTA] Guardar código fuente HTML en archivo de texto.

¿Es posible que nos digas que mensaje de error te muestra al hacer fwrite() o hay que adivinar?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/05/2012, 10:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: [CONSULTA] Guardar código fuente HTML en archivo de texto.

¿Que error te muestra?
  #4 (permalink)  
Antiguo 07/05/2012, 11:08
 
Fecha de Ingreso: mayo-2012
Mensajes: 5
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: [CONSULTA] Guardar código fuente HTML en archivo de texto.

Es cierto, no lo puse, porque en este momento estoy en el trabajo y no puedo ejecutar el script.
En cuanto llegue a casa se los paso.

Muchas gracias!
  #5 (permalink)  
Antiguo 07/05/2012, 16:57
 
Fecha de Ingreso: mayo-2012
Mensajes: 5
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: [CONSULTA] Guardar código fuente HTML en archivo de texto.

Finalmente estoy en casa y puedo ponerles el error que me da.

Warning: fwrite(): supplied argument is not a valid stream resource in C:\AppServ\www\Pruebas\pruebas.php on line 13

Les agradeceré si me pueden ayudar. Por otro lado, lo que intento hacer, se puede hacer? O estoy luchando con imposibles?

Gracias!
  #6 (permalink)  
Antiguo 07/05/2012, 19:23
Avatar de funkii  
Fecha de Ingreso: junio-2010
Mensajes: 64
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: [CONSULTA] Guardar código fuente HTML en archivo de texto.

Te dejo otra forma de hacerlo que me parecio mas rapida y facil, no se si estoy en lo correcto:

$Archivo = file("http://www.lapaginaquequieras.com.ar");
reset ($Archivo);
foreach ($Archivo as $codigo) {
echo htmlentities($codigo);
}

Lo hice con array por si queres conseguir el código fuente de mas de una página, para que puedas agregarlas fácilmente.

Saludos
  #7 (permalink)  
Antiguo 07/05/2012, 21:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: [CONSULTA] Guardar código fuente HTML en archivo de texto.

Quita la línea del chmod, es incorrecta, ya que debes de usar el path al archivo.

Luego verifica tus variables no son iguales: $Fcodigo != $FCodigo.
  #8 (permalink)  
Antiguo 08/05/2012, 07:19
 
Fecha de Ingreso: mayo-2012
Mensajes: 5
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: [CONSULTA] Guardar código fuente HTML en archivo de texto.

No puedo creer que no haya visto la diferencia entre las variables

Muchas gracias funkii por la alternativa. Cuando llego a casa pruebo lo que me dijeron y les aviso si funciona.

  #9 (permalink)  
Antiguo 09/05/2012, 09:09
 
Fecha de Ingreso: mayo-2012
Mensajes: 5
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: [CONSULTA] Guardar código fuente HTML en archivo de texto.

Finalmente lo pude resolver. El mayor problema lo tenía en los nombres de las variables. Todavía no puedo creer que haya sido eso.

Por si puede llegar a servir para algo, les dejo como quedó el script:

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. $FRecetas = fopen("Recetas.txt","a")
  5. or die ("Problema al crear archivo de recetas");
  6.  
  7. for ($i=1;$i<11;$i++){
  8.  
  9.   $url="http://lalala/receta/".$i;
  10.   $FSitio = fopen($url,"r") or die("Problemas al guardar URL");
  11.  
  12.   $leyenda="<br>------------ RECETA NRO: ".$i." - ".$url." ------------------------------<br>";
  13.   fwrite($FRecetas,$leyenda);
  14.  
  15.   while (!feof($FSitio)){
  16.     $linea = fgets($FSitio);
  17.     fwrite($FRecetas,$linea);
  18.   }
  19. }
  20.  
  21. echo "FIN DEL SCRIPT";
  22.  
  23. ?>

Ahora tengo que seguir con el parseo de ésto, así que puede ser que me vean seguir molestando por acá.

Muchisimas gracias por toda la ayuda que me dieron.

Etiquetas: fuente, 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 13:07.