Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: electrodev en 9 Agosto 2013, 00:08 am



Título: [Aporte][Python]Linux Magazine Downloader v1.0
Publicado por: electrodev en 9 Agosto 2013, 00:08 am
Hola gente la pasada noche me dio por codeamer un downloader para los articulos de todos los numeros de Linux Magazine que son publicos (1-82) a día de hoy, ya que me parece extremadamente pesado descargar uno por uno todos los articulos. Lo programe bajo windows pero cambiando un par de comandos debe funcionar 100% en linux, no me pregunten porque descargo revistas de linux desde un windows xD.Ni que decir tiene que el codigo es ampliamente mejorable, pero bueno funciona.

Código:
#!python
#Linux Magazine Downloader v1.0 (cc)7/8/13
#Create by: Eduardo97

import urllib2,os

url = "http://www.linux-magazine.es/issue/"

start_magazine = 1

for i in range(start_magazine,83):
   if len(str(i)) > 1:
       i = str(i)
   else:
       i = "0" + str(i)
   os.system("md "+i)
   os.system("copy wget.exe "+i)
   req = urllib2.Request(url+i)
   response = urllib2.urlopen(req)
   html = response.read()
   f = open("html.txt", "w")
   f.write(html)
   f.close()
  
   os.system("cd "+i+" & wget.exe "+url+"/"+i+"/LinuxMagazineCover_XXL.jpg & ren LinuxMagazineCover_XXL.jpg portada.jpg")
   f = open("html.txt", "r")
   for line in f:
       if line.find(".pdf") >= 0:
          try:
             doc = line.split('<a href="')[1]
             doc = doc.split('">')[0]
             os.system("cd "+i+" & wget.exe "+url+"/"+i+"/"+doc)
          except:
             pass
       else:
          pass
   f.close()
   os.system("cd "+i+" & del wget.exe")
os.system("del html.txt")

Para que funcione es necesario tener el wget para windows en la misma carpeta donde esta el script, lo pueden descargar aquí: http://users.ugent.be/~bpuype/wget/ (http://users.ugent.be/~bpuype/wget/). Para hacerlo funcionar les aconsejo que creen una carpeta dónde ponen el script y el wget, luego solo ejecutan el script y el solo les ira creando carpetas correspondientes a cada numero con los artículos y la portada de ese numero dentro.Si quieren que descarge a partir del un numero determinado solo cambien el numero de la variable "start_magazine", esto es útil para por si apagan el pc y luego quieren continuar donde lo dejaron.Para migrar el script a linux cambien los comandos de consola windows por los de linux:  & = ; , md = mkdir , rem = mv , quiten el .exe al wget y las lineas "os.system("copy wget.exe "+i) y os.system("cd "+i+" & del wget.exe")" . No lo he probado en linux pero deberia funcionar.

Espero que el script les funcione y les sea de ayuda.

Un Salu2