Buenas,

Ademas de lo que ha comentado Chema de usar BeautifulSoup yo te
recomendaria que usaras tambien http://scrapy.org/ un framework para hacer
scraping, sobre todo por que te permite crear crawlers de manera bastante
rapida y facil.

Un saludo.


2013/12/12 Chema Cortes <[email protected]>

> El día 9 de diciembre de 2013 22:04, Manuel <[email protected]>
> escribió:
> > Buenas noches a todos.
> >
> > Estoy dando mis primeros pasos en Python, he conseguido hacer un script
> para bajar series de anime, pero me gustaría guardar en un archivo de texto
> las descargas ya realizadas, así la próxima vez que se ejecutara, mire en
> el archivo de texto para no descargar el mismo episodio.
>
> Si pretendes hacer búsquedas, posiblemente te vaya mejor una base de
> datos en sqlite que un fichero de texto en plano. Además podrías
> añadir más información por cada registro, o añadir una tabla de tipos
> de animes en lugar de tenerlos como una lista en el código.
>
> Por estructurar tu código, se pueden diferenciar tres partes:
>
> - lectura de información de la web
> - obtención de la lista de episodios
> - descarga del episodio
>
> Por cada parte, crea una función. Si fuera a hacerse más complejo,
> cada parte sería una clase, un módulo o un paquete, según se
> incrementara la complejidad.
>
> Cuando aparece la palabra "lista" en un diseño funcional, programando
> en python equivale a trabajar con iteradores. El la práctica, todo
> bucle puede ser sustituído por iteradores, mucho más eficientes y
> elegantes.
>
> Para introducir "persistencia", tendríamos:
>
> - en la parte donde se obtiene la lista, se filtraría la lista de
> episodios para no volver a descargar episodios descargados
> - en la parte de descarga, se añadiría a la base de datos los
> episodios descargados
>
> Una última recomendación: si te dedicas a extraer información de
> páginas webs ("web scraping") usa alguna de las librería indicadas
> para ello como "BeautifulSoup"
> (http://www.crummy.com/software/BeautifulSoup/).
>
> >
> > Este es el código de lo que tengo hecho.
> >
> > #!/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()
>
>
> --
> Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
> http://ch3m4.org/blog
> Buscador Python Hispano: http://ch3m4.org/python-es
> _______________________________________________
> Python-es mailing list
> [email protected]
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
_______________________________________________
Python-es mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a