elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Ayuda] Como sacar informacion de una web con php
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda] Como sacar informacion de una web con php  (Leído 2,277 veces)
K4

Desconectado Desconectado

Mensajes: 6


Ver Perfil
[Ayuda] Como sacar informacion de una web con php
« en: 10 Diciembre 2007, 02:35 am »

Holas
Alguien sabe como puedo sacar informacion publicada en una web para luego poder procesarla y guardarla en mi BD. Los datos estan publicados en texto simple dentro de la web.
Me gustaria hacerlo con php, pero si saben como hacerlo con otro lenguaje diganmelo tmb , gracias


En línea

дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: [Ayuda] Como sacar informacion de una web con php
« Respuesta #1 en: 10 Diciembre 2007, 03:08 am »

Holas
Alguien sabe como puedo sacar informacion publicada en una web para luego poder procesarla y guardarla en mi BD. Los datos estan publicados en texto simple dentro de la web.
Me gustaria hacerlo con php, pero si saben como hacerlo con otro lenguaje diganmelo tmb , gracias

Pues puedes con cURL, mira:

Código
  1. <?php
  2.  
  3. //bot mcgrahill espanol
  4.  
  5. function conectar($host, $user, $pass, $database){
  6. $conectar = mysql_connect($host, $user, $pass) or die(mysql_error());
  7. mysql_select_db($database,$conectar);
  8. return $conectar;
  9. }
  10.  
  11.  
  12. $conexion=conectar("algo","algomas","mas","tienda");
  13.  
  14. $data=file('lista_mcgrawhill.txt');
  15. $num=count($data);
  16.  
  17.  
  18. $i=0;
  19.  
  20. function get_content($url){
  21.  
  22.   }
  23.  
  24. /*function get_content($url){
  25.     $ch = curl_init();
  26.  
  27.     curl_setopt ($ch, CURLOPT_URL, $url);
  28.     curl_setopt ($ch, CURLOPT_HEADER, 0);
  29.  
  30.     ob_start();
  31.  
  32.     curl_exec ($ch);
  33.     curl_close ($ch);
  34.     $string = ob_get_contents();
  35.  
  36.     ob_end_clean();
  37.    
  38.     return $string;    
  39. }*/
  40.  
  41. for($i;$i<$num;$i++){
  42.  
  43. $datos_nuevos=$data[$i];
  44. $datos_nuevos=explode("\t",$datos_nuevos);
  45.  
  46.  
  47. $content_titulo = get_content("http://www.oceano.com.mx/libro_detalle.asp?isbn=".$datos_nuevos[8]);
  48.  
  49. //Sacar imagen grande
  50. $content_imagen_giga=get_content("http://www.oceano.com.mx/detallelibroimpresion2.asp?isbn=".$datos_nuevos[8]);
  51. $expCadena1_imagen_giga=explode("<IMG SRC=\"", $content_imagen_giga);
  52. $expCadena2_imagen_giga=explode("\" HSPACE=\"10\" VSPACE=\"0\">", $expCadena1_imagen_giga[1]);
  53.  
  54.  
  55. //Sacar formato
  56. $content_formato = get_content("http://www.oceano.com.mx/libro_detalle.asp?isbn=".$datos_nuevos[8]);
  57. $expCadena1_formato = explode("<TD BGCOLOR=\"#FFFFFF\" class=\"Estilo17\"><span class=\"Estilo32\">", $content_formato);
  58. $expCadena2_formato = explode("</font></font> </span></TD>", $expCadena1_formato[1]);
  59. $expCadena2_formato[0]=str_replace("<font color=\"#000000\"><font color=\"#000000\">","",$expCadena2_formato[0]);
  60.  
  61. $formato_final=$expCadena2_formato[0];
  62.  
  63. //declaramos la basura
  64. $basura_formato=array("(gramos)","(cm)","\r\n");
  65.  
  66. //quitamos la basura
  67. $formato_final=str_replace($basura_formato,"",$formato_final);
  68.  
  69. $formato_final=str_replace("/", "x",$formato_final);
  70.  
  71. //hacemos un array por cada corte de X
  72. $formato_final=explode("x",$formato_final);
  73.  
  74. //Codigo barkua
  75. $better_token = md5(uniqid(rand(), true));
  76.  
  77. //coleccion viene vacia?
  78. if($datos_nuevos[5]!=""){
  79. $coleccion_final="1";
  80. }
  81. else{
  82. $coleccion_final="0";
  83. }
  84.  
  85. //Obtenemos la desc
  86. $content = get_content("http://www.oceano.com.mx/libro_detalle.asp?isbn=".$datos_nuevos[8]);
  87. $expCadena1 = explode("Estilo27\">", $content);
  88. $expCadena2 = explode("<span class=\"Estilo17\">", $expCadena1[1]);
  89. $expCadena2[0]=str_replace("\r\n","",$expCadena2[0]);
  90.  
  91. //Saca ano
  92.  
  93. $content_ano = get_content("http://www.oceano.com.mx/libro_detalle.asp?isbn=".$datos_nuevos[8]);
  94.  
  95. $expCadena1_ano = explode("<TD colspan=\"2\" BGCOLOR=\"#FFFFFF\" class=\"Estilo17\"><span class=\"Estilo32\">", $content_ano);
  96. $expCadena2_ano = explode("/<font color=\"#000000\">", $expCadena1_ano[1]);
  97.  
  98.  
  99.  
  100. $expCadena2_ano[0]=str_replace("1a","",$expCadena2_ano[0]);
  101. $expCadena2_ano[0]=str_replace("/","",$expCadena2_ano[0]);
  102. $expCadena2_ano[0]=trim($expCadena2_ano[0]);
  103.  
  104. $formato_final[3]=trim($formato_final[3]);
  105. $formato_final[1]=trim($formato_final[1]);
  106. $formato_final[0]=trim($formato_final[0]);
  107.  
  108. $expCadena2_ano[0]=str_replace("/","",$expCadena2_ano[0]);
  109. $expCadena2_ano[0]=trim($expCadena2_ano[0]);
  110.  
  111.  
  112.  
  113. $coleccion_final="0";
  114.  
  115.  
  116.  
  117.  
  118. //Rutina para imagen
  119. /*$archivo= "http://www.oceano.com.mx/".$expCadena2_imagen_giga[0];
  120. $destino = "fotos_libros/lib_".$datos_nuevos[8].".jpg";
  121. copy($archivo, $destino);*/
  122.  
  123. $titulo=$datos_nuevos[2];
  124. $autor=$datos_nuevos[1];
  125. $editorial='2';
  126. $precio2007=$datos_nuevos[6];
  127. $isbn=$datos_nuevos[0];
  128. $codigo_barra=$datos_nuevos[5];
  129. $tema=$datos_nuevos[3];
  130. $ano=$datos_nuevos[4];
  131.  
  132.  
  133. $descripcion=ltrim($descripcion);
  134. $descripcion=rtrim($descripcion);
  135.  
  136. $titulo=ucfirst(strtolower($titulo));
  137. $descripcion=ucfirst(strtolower($descripcion));
  138. $autor=ucfirst(strtolower($autor));
  139. $editorial=ucfirst(strtolower($editorial));
  140. $coleccion=ucfirst(strtolower($coleccion));
  141. $tema=ucfirst(strtolower($tema));
  142.  
  143.  
  144. $titulo=htmlentities($titulo,ENT_QUOTES,'UTF-8');
  145. $descripcion=htmlentities($descripcion,ENT_QUOTES,'UTF-8');
  146. $autor=htmlentities($autor,ENT_QUOTES,'UTF-8');
  147. $editorial=htmlentities($editorial,ENT_QUOTES,'UTF-8');
  148. $coleccion=htmlentities($coleccion,ENT_QUOTES,'UTF-8');
  149. $tema=htmlentities($tema,ENT_QUOTES,'UTF-8');
  150.  
  151.  
  152. $sql_ingreso="
  153. INSERT INTO `dbarkuac_tienda`.`libros`(
  154. `id`,`titulo`,`subtitulo`,`descr_corta`,`descr_larga`,
  155. `tema`,`subtema`,`codigo_barkua`,`codigo_barras` ,
  156. `isbn`,`autores`,`editoriales_id`,`edicion`,`num_pags`,
  157. `coleccion`,`coleccion_titulo`,`coleccion_pzas`,`peso`,
  158. `dimensiones_largo`,`dimensiones_ancho`,`dimesiones_espesor`,
  159. `foto_url`,`foto2_url`,`foto3_url`,`pdf_interiores_url`,
  160. `palabras_clave`,`promedio`,`agregado_por`,`fecha_agregado`,
  161. `modificado_por`,`fecha_modificado`,`fecha_ultima_venta`,
  162. `cantidad_vendida`,`existencias`,`notas`,`precio_compra`,
  163. `precio_venta`,`precio_oferta`)
  164. VALUES (NULL , '".$titulo."' , NULL , NULL , '".$descripcion."',
  165. '".$tema."', NULL, '".$better_token."', '".$codigo_barra."',
  166. '".$isbn."' , '".$autor."', '".$editorial."', '".$ano."', NULL , '".$coleccion_final."',
  167. '".$coleccion."', NULL , '".$peso."','".$largo."',
  168. '".$ancho."', '".$espesor."' , '".$destino."', NULL , NULL,
  169. '0', NULL , '0', NULL , '".$fecha_hoy."', NULL , NULL , NULL , '0', '".$existencias."',
  170. NULL , '', '".$precio_final."', '');";
  171.  
  172.  
  173.  
  174. $graba_todo=mysql_query($sql_ingreso,$conexion);
  175. if(!$graba_todo){
  176.  
  177. echo mysql_errno($conexion) . ": " . mysql_error($conexion). "\n";
  178.  
  179. }
  180. echo "Registro no. <b>".$i."</b><br>";
  181. //sleep(5);
  182.  
  183. }
  184.  
  185.  
  186. ?>
  187. </pre>
  188.  

Lo hizo uno de mis programadores, obvio se puede mejorar con ee.rr, si tienes duda avisanos  ;)


En línea

K4

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: [Ayuda] Como sacar informacion de una web con php
« Respuesta #2 en: 11 Diciembre 2007, 02:16 am »

Muchas Gracias por el dato, lo estoy probando...
Lo que no entiendo es como funciona la funcion get_content,
por lo que entedi recupera el codigo html de la apgina es correcto?
en el codigo que me pegaste esta comentada, esto es correcto?

Desde ya muchas gracias a vos y a tu programador, Un saludo
En línea

K4

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: [Ayuda] Como sacar informacion de una web con php
« Respuesta #3 en: 11 Diciembre 2007, 02:31 am »

Muchas Gracias por el dato, lo estoy probando...
Lo que no entiendo es como funciona la funcion get_content,
por lo que entedi recupera el codigo html de la apgina es correcto?
en el codigo que me pegaste esta comentada, esto es correcto?

Desde ya muchas gracias a vos y a tu programador, Un saludo

Ya lo hice andar, pero me anda solo con algunas paginas, por ejemplo probando con la web de tu ejemplo hice

$content_titulo = get_content("http://www.oceano.com.mx/");
echo "content: ".$content_titulo;

y no me recupera nada, tenes idea a que se puede deber?
Tmb te pido si me explicas un poco mas la funcion que creaste get_content, porque no tengo del todo claro como funciona.
Gracias por todo
y saludos
« Última modificación: 11 Diciembre 2007, 03:33 am por K4 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Cómo sacar toda esta información mediante PHP o JS?
Desarrollo Web
z3nth10n 5 4,827 Último mensaje 6 Mayo 2011, 15:25 pm
por z3nth10n
ayuda con informacion de mi usb
Análisis y Diseño de Malware
saulg85 4 4,197 Último mensaje 8 Octubre 2011, 07:34 am
por x64core
Como sacar informacion de links https con wireshak
Hacking
CloudHex 4 2,694 Último mensaje 11 Noviembre 2018, 03:11 am
por CloudHex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines