Python - Guardar y chequear descargas realizadas en un archivo de texto.

 
Vista:
sin imagen de perfil

Guardar y chequear descargas realizadas en un archivo de texto.

Publicado por Manuel (7 intervenciones) el 09/12/2013 21:54:04
Buenas noches a todos.

Estoy aprendiendo Python e hice un script para bajar unas series de anime, pero me gustaría guardar en un archivo de texto las descargas ya realizadas, así la próxima vez que ejecutara el script, no me descargue otra vez algún episodio ya bajado.

Este es el código de lo que tengo hecho.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/python
import re, urllib
import webbrowser
import time
 
 
def descarga_anime():
    lista_anime = ["coppelion", "flamenco", "freezing", "hajime", "log-horizon", "valvrave", "arpeggio"]
    myurl = "http://www.animetake.com"
 
    for i in re.findall('''href=["'](.[^"']+)["']''', urllib.urlopen(myurl).read(), re.I):
        #time.sleep(900)
        for serie in lista_anime:
            
            if serie in i and "episode" in i:
                webbrowser.open(i)
                time.sleep(4)
                     
                for torrent in re.findall('''href=["'](.[^"']+)["']''', urllib.urlopen(i).read(), re.I):
                   if "nyaa.se" in torrent:
                       if "#038" in torrent:
                           torrent = torrent.replace("#038;", "")
                       torrent = torrent.replace("amp;", "").replace(" ", "")
                       webbrowser.open(torrent)
                       time.sleep(4)
                       break
                    
descarga_anime()


Muchas gracias por vuestro tiempo y ayuda.
Manuel.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Guardar y chequear descargas realizadas en un archivo de texto.

Publicado por xve (1646 intervenciones) el 10/12/2013 07:17:03
Hola Manuel, muy bueno tu código, esta muy bien pensado...;)

Para guardar en un archivo las descargas, puedes utilizar file()... algo así:
1
2
3
f=file("descargas.txt","w")
f.write(torrent+"\n")
f.close()

Es esto lo que estas buscando?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Guardar y chequear descargas realizadas en un archivo de texto.

Publicado por Manuel (7 intervenciones) el 10/12/2013 12:48:27
xve, muchas gracias por comentar mi código.

Te comento que el escribir en un archivo de texto lo tengo más o menos controlado, pero lo que quiero es que cuando ejecute el script por segunda vez, compruebe en el archivo de texto si algún episodio que haya en el pagina principal de la web ya lo he descargado, de forma que no baje el mismo episodio dos veces.
Por ejemplo, si el domingo descargó el episodio 9 de Hajime, el lunes cuando vuelva a ejecutar el script baje el episodio nuevo de otra serie, pero no el 9 de Hajime si es que está todavía en la primera página. Integrar ese chequeo entre cada ejecución en mi código es lo que no consigo.
Espero no liarte mucho.

Te dejo un enlace a un script más completo de mi idea.
http://pastebin.com/2wAGa9xP

Muchas gracias por tu tiempo y atención.
Manuel.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Guardar y chequear descargas realizadas en un archivo de texto.

Publicado por xve (1646 intervenciones) el 10/12/2013 15:06:00
Hola Manuel, yo lo que haría, es cada vez que se inicia tu código cargar el contenido del archivo a episodios bajados, para de esta manera, revisar que no se bajen los ya existentes... tal y como lo tienes... pero haría algunas modificaciones, para que no te elimine el contenido del archivo Anime.txt si lo ejecutas varias veces...

Haber que te parece... he hecho pequeñas modificaciones:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/python
import re, urllib
import webbrowser
import time
import os
 
episodios_bajados = []
lista_anime = ["coppelion", "flamenco", "freezing", "hajime", "log-horizon", "valvrave", "arpeggio"]
myurl = "http://www.animetake.com"
 
def descarga_anime():
    en_lista = []
    if os.path.exists("Animes.txt"):
        # leemos el archivo
        comprobacion_animes = open("Animes.txt", "r")
        en_lista = comprobacion_animes.readline()
    else:
        # creamos el archivo
        f=file("Animes.txt", "w").close()
 
    for i in re.findall('''href=["'](.[^"']+)["']''', urllib.urlopen(myurl).read(), re.I):
        #time.sleep(900)
        if i in en_lista:
            print "Cortamos !!"
            comprobacion_animes.close()
            # continuamos por la siguiente iteracion
            continue
               
        for serie in lista_anime:
            if serie in i and "episode" in i:
                episodios_bajados.append(i)
                webbrowser.open(i)
                time.sleep(4)
                     
                for torrent in re.findall('''href=["'](.[^"']+)["']''', urllib.urlopen(i).read(), re.I):
                   if "nyaa.se" in torrent:
                       if "#038" in torrent:
                           torrent = torrent.replace("#038;", "")
                       torrent = torrent.replace("amp;", "").replace(" ", "")
                       webbrowser.open(torrent)
                       time.sleep(4)
                       break
 
descarga_anime()        
                   
bajados = str(episodios_bajados)
animes_bajados = open("Animes.txt", "a")
animes_bajados.write(bajados)
animes_bajados.close()

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Guardar y chequear descargas realizadas en un archivo de texto.

Publicado por Manuel (7 intervenciones) el 23/12/2013 17:14:09
Xve, gracias nuevamente. Perdona que no te lo haya agradecido antes, he estado muy liado.
Con tus modificaciones, el script funciona perfectamente.

Te deseo una feliz navidad y año nuevo.
Manuel.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Guardar y chequear descargas realizadas en un archivo de texto.

Publicado por xve (1646 intervenciones) el 23/12/2013 22:25:23
Gracias por comentarlo Manuel...

Igualmente felices fiestas!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar