Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: n3w en 14 Diciembre 2012, 13:22 pm



Título: [PYTHON] Como descargar un directorio web completo
Publicado por: n3w en 14 Diciembre 2012, 13:22 pm
Buenas a todos:

Como explica el título estoy intentando descargarme una revista online entera desde el primero hasta el último número que han liberado de forma gratuita. Decidí hacerme un script en python porque me apetecía recordar el lenguaje.
El caso es que no se de qué forma puedo listar los archivos de un directorio web enteros o directamente descargarme todos los posibles ficheros descargables de ese directorio.
Hacer
Código:
wget -r -np http://sitioweb.com/ 
ya me descargaría todos los ficheros del árbol de directorios hacia abajo de forma recursiva, sin embargo quiero hacerlo directamente desde python.
Si, he probado con urllib, pero que yo sepa solo me descarga ficheros uno a uno por su path exacto.


Un saludo


Título: Re: [PYTHON] Como descargar un directorio web completo
Publicado por: Novlucker en 14 Diciembre 2012, 13:41 pm
Lo que debes de hacer es parsear el HTML en busca de los links descargables.

Saludos


Título: Re: [PYTHON] Como descargar un directorio web completo
Publicado por: n3w en 14 Diciembre 2012, 13:44 pm
Gracias =) es un lío pudiendo descargarme el wget para windows. pero quería hacerlo exclusivamente con los módulos predeterminados en python.

Un saludo ^^


Título: Re: [PYTHON] Como descargar un directorio web completo
Publicado por: 0x5d en 15 Diciembre 2012, 18:08 pm
Gracias =) es un lío pudiendo descargarme el wget para windows. pero quería hacerlo exclusivamente con los módulos predeterminados en python.

Un saludo ^^
Hola, muy buen día.

Como dice acá el "colega" Novlucker

Lo que debes de hacer es parsear el HTML en busca de los links descargables.

Saludos

Parsea el html, tienes la opción de hacer un
Código
  1. import urllib2
  2. from HTMLParser import *
  3.  
  4. class Parser(HTMLParser):
  5.  
  6.  def handle_data(self, data):
  7.    return data
  8.  
  9. web = urllib2.urlopen("http://www.elhacker.net").read()
  10. parsear = Parser()
  11. print parsear.feed(web)
  12.  
Sino deseas hacerlo así, te recomiendo que averigües sobre la librería "re" , podrás encontrar los enlaces de una web vía Expresiones Regulares .

Saludos.