Descarga automática de archivos en una página web

Iniciado por salruca, 10 Enero 2015, 14:20 PM

0 Miembros y 1 Visitante están viendo este tema.

salruca

Hola a todos.

Necesito descargar todos los días los archivos de una página en especial, cuento con acceso permitido a dicha página (no pretendo hackearla ni nada por el etilo). Algunas veces solo son 2 o 3 archivos a descargar y no tengo ningún problema en dar click en cada uno de los links, pero la mayor parte de las veces son varias decenas o incluso cientos de links y necesito descargarlos todos.

He estado haciendo pruebas con programas como jdownloader y no obtengo absolutamente nada.

Analizando el código fuente de la página, llegué al elemento de un link y tiene el siguiente código:

Código (html4strict) [Seleccionar]
<img id="BtnDescarga" name="BtnDescarga" src="Images/World-download.png" height="25" width="25" class="BtnDescarga" onclick="return AccionCfdi('RecuperaCfdi.aspx?Datos=1crX9Nm','Recuperacion');" title="Descargar" style="cursor:pointer">

¿Es posible realizar la descarga masiva de todos los archivos de una forma más práctica que dar click en cada link?

Ojalá me puedan orientar al respecto.

Gracias de antemano.


Mod: Obligatorio el uso de etiquetas GeSHi.

MinusFour

Si tienes acceso permitido a la pagina, que te den acceso a los archivos atraves de ftp.

moikano→@

#2
Buenas.


Primero de todo, esto no es un link.
Código (html4strict) [Seleccionar]
<img id="BtnDescarga" name="BtnDescarga" src="Images/World-download.png" height="25" width="25" class="BtnDescarga" onclick="return AccionCfdi('RecuperaCfdi.aspx?Datos=1crX9Nm','Recuperacion');" title="Descargar" style="cursor:pointer">
Es una imagen.
Los links empiezan con la etiqueta <a> pero si que parece que hay un javascript incrustado, para ser concreto este "RecuperaCfdi.aspx?Datos=1crX9Nm".

Con php o bash podrias descargar los archivos automáticamente con un simple script y expresiones regulares o busquedas DOM. Si quieres recopilar a mano todos los enlaces luego los puedes descargar con wget. Pero todo esto es con Linux, no se que sistema usas, supongo que Windows, para Windows tendrias que usar php o Java.

salruca

Gracias por sus comentarios.

No puedo solicitar acceso via ftp. El único acceso que tengo permitido es a través de la página web.

Gracias moikano, la descarga de los archivos la hago con un equipo windows y realmente desconozco java y no soy experto en php. ¿Podrías orientarme con un poco de detalle para hacer el programa en php?

Gracias nuevamente.

moikano→@

#4
CitarGracias moikano, la descarga de los archivos la hago con un equipo windows y realmente desconozco java y no soy experto en php. ¿Podrías orientarme con un poco de detalle para hacer el programa en php?

No es complicado, pero todo depende, claro.
Si lo quieres hacer en php lo que tienes que mirar es lo siguiente.

1- Para poder descargar la página donde tienes los enlaces para poder descargar los archivos, tienes que usar php-curl. http://php.net/manual/es/curl.examples-basic.php
2- Para sacar los enlaces una vez descargada la página deberás usar o bien una expresión regular con preg_match http://php.net/manual/es/function.preg-match.php o bien usar selección de html DOM (para esto tendrás que ir a librerias externas).
3- Una vez tienes los enlaces listos tendrás que usar alguna de las funciones para descargar archivos de php, en este caso yo usaria esto, pero no lo he probado, yo usaba curl para esto también. Pero dicen que funciona bien.
Código (php) [Seleccionar]
file_put_contents("archivo_descargado.zip", fopen("http://url.com/archivo_a_descargar.zip", 'r'))

Con el preg_match será con el que tendrás mas problemas, ya que necesitas saber expresiones regulares. El dom es mas sencillo de aprender, bajo mi opinión.
Por si quieres buscar mas info esto se llama scraping http://es.wikipedia.org/wiki/Web_scraping
Y recuerda que php tiene una gran documentación a tu alcance, úsala es gratis.

Suerte.

salruca

Muchas gracias moikano, ya tomé nota y de inmediato empiezo a estudiar lo que me recomiendas.