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/
