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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Resuelto] Sacar datos de una web y meterlos en un fichero
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] Sacar datos de una web y meterlos en un fichero  (Leído 2,878 veces)
ccrunch


Desconectado Desconectado

Mensajes: 1.050



Ver Perfil WWW
[Resuelto] Sacar datos de una web y meterlos en un fichero
« en: 14 Julio 2015, 13:51 pm »

Hola a todos, por cuestiones varias necesito sacar el correo electrónico de todos los centros de educación de Valencia.

En esta página: http://www.cece.gva.es/ocd/areacd/es/consulta01.asp al pinchar sobre el código se abre otra página donde aparece el campo "E-Correo:"

Necesito sacar el valor de ese campo de todos los centros y meterlos en un fichero de modo direccion@correo.com; direccion2@correo.com

Alguien me puede ayudar?

Le he dado vueltas pero no consigo sacarlo adelante.

Salu2 y gracias a todos!


« Última modificación: 21 Julio 2015, 15:45 pm por #!drvy » En línea

moikano→@


Desconectado Desconectado

Mensajes: 572


Cultiva tu mente y cuerpo, son tu única propiedad


Ver Perfil WWW
Re: Sacar datos de una web y meterlos en un fichero
« Respuesta #1 en: 14 Julio 2015, 15:14 pm »

Pues lo primero que tienes que sacar son los enlaces. Con expresiones regulares sobre el mismo código de la página que has dado se pueden sacar todos.

Si son algo así.

Código:
centro.asp?codi=46019155

Pues busca una expresión regular para sacarlas todas.

Y luego con un script haces curl a todos esos enlaces, poniendo un delay entre petición y petición ya que puede que tengan algún sistema de limitación de peticiones, y vuelves ha hacer una expresión regular para sacar cada correo, que por cierto no lleva protección alguna así que son fáciles de sacar.

Suerte.


En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Sacar datos de una web y meterlos en un fichero
« Respuesta #2 en: 14 Julio 2015, 16:28 pm »

Lo ideal sería que hicieras una petición inicial para parsear la tabla y sacar los links. Una vez que hace eso, lanzar peticiones a cada una de las paginas. Son cerca de 1000 peticiones por lo que vas a tener que darle un delay de 500-1000 ms para que no te bloquee su servidor.

Edit: Me puse a jugar un poco con un script, estaba un poco aburrido:

http://pastebin.com/yfmQKyfb

Código
  1. <?php
  2. include 'Petition.php';
  3. class Test {
  4. public static function init(){
  5. $petition = new Petition('http://www.cece.gva.es/ocd/areacd/es/consulta01.asp');
  6. $petition->enableTransfer(true);
  7. $data = $petition->process();
  8. preg_match_all('/centro\.asp\?codi\=([0-9]{8})/', $data, $matches);
  9. foreach($matches[1] as $cod){
  10. $pet = new Petition('http://www.cece.gva.es/ocd/areacd/es/centro.asp?codi='.$cod);
  11. $pet->enableTransfer(true);
  12. $dom = @DOMDocument::loadHTML($pet->process());
  13. $domElement = $dom->getElementById('contenidoInferior');
  14. $node = $domElement->getElementsByTagName('table')->item('2')->childNodes->item('3')->childNodes->item('2');
  15. echo $node->nodeValue . '; ';
  16. usleep(500000);
  17. }
  18. }
  19. }
  20. Test::init();
  21. ?>

Código
  1. <?php
  2. class Petition {
  3. private $handler;
  4. private $url;
  5.  
  6. public function __construct($url = null){
  7. $this->handler = curl_init();
  8. if($url){
  9. $this->setUrl($url);
  10. }
  11. }
  12.  
  13. public function __destruct(){
  14. curl_close($this->handler);
  15. }
  16.  
  17. public function setOption($optName, $value){
  18. return curl_setopt($this->handler, $optName, $value);
  19. }
  20.  
  21. public function setUrl($url){
  22. $this->url = $url;
  23. $this->setOption(CURLOPT_URL, $url);
  24. }
  25.  
  26. public function enableTransfer($val){
  27. $this->setOption(CURLOPT_RETURNTRANSFER, $val);
  28. }
  29.  
  30. public function setUserAgent($val){
  31. $this->setOption(CURLOPT_USERAGENT, $val);
  32. }
  33.  
  34. public function setReferer($val){
  35. $this->setOption(CURLOPT_REFERER, $val);
  36. }
  37.  
  38. public function getUrl(){
  39. return $this->url;
  40. }
  41.  
  42. public function process(){
  43. $result = curl_exec($this->handler);
  44. if($result === false){
  45. throw Exception(curl_error($this->handler));
  46. }
  47. return $result;
  48. }
  49. }
  50. ?>

Realmente no es necesario la clase Petition. Puedes usar fopen o similar.
« Última modificación: 14 Julio 2015, 19:00 pm por MinusFour » En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Re: Sacar datos de una web y meterlos en un fichero
« Respuesta #3 en: 14 Julio 2015, 16:54 pm »

Puedes hacerlo con PHP:

Código
  1. $dom = new DOMDocument;
  2. $dom->loadHTMLFile('la_url');
  3. $table = $dom->getElementsByTagName('table')[0];
  4. $links = $table->getElementsByTagName('a');
  5. // haces peticiones a cada link, y extraes el correo (debe tener algun id asociado o por el estilo) de la misma forma
  6.  
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
ccrunch


Desconectado Desconectado

Mensajes: 1.050



Ver Perfil WWW
Re: Sacar datos de una web y meterlos en un fichero
« Respuesta #4 en: 17 Julio 2015, 14:02 pm »

Hola, gracias a todos y especialmente a MinusFour que me ha sacado de un gran apuro  :xD me ha funcionado a la perfección y se ha resuelto el problema.

Gracias otra vez.

Te debo una compadre  ;)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[AYUDA] Sacar de un exe un fichero bat
Scripting
777Rubenix777 3 5,473 Último mensaje 30 Enero 2011, 12:24 pm
por 777Rubenix777
Guarda basura al leer string desde un fichero.[RESUELTO]
Programación C/C++
utz 5 4,592 Último mensaje 14 Mayo 2012, 03:36 am
por durasno
[Resuelto] Insertar fichero .skp en html 5
Desarrollo Web
yoelrodguez 2 3,246 Último mensaje 3 Septiembre 2015, 19:06 pm
por yoelrodguez
Ayuda para sacar unos valores de un fichero
Java
Fryuio 4 2,346 Último mensaje 22 Abril 2017, 12:40 pm
por Fryuio
[RESUELTO]Comprobar formato de un fichero de texto
Programación C/C++
atioira 6 3,396 Último mensaje 10 Mayo 2017, 15:46 pm
por atioira
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines