Re: [Python-es] Otaku script
2013/2/12 Chema Cortes pych...@gmail.com El 12 de febrero de 2013 06:24, Alexandro Colorado j...@oooes.orgescribió: Hola, no se cuanto fan de Anime y Manga Japonesa haya por aqui, pero tengo un script que jala del sitio http://www.mangareader.net/ comics usando python, curl y beautifulsoup. Estas imagenes las mete en un folder que crea y titula como el comic. No veo que preguntes nada en concreto, así que sólo pondré algunos comentarios: La pregunta es mas de deciones, seria mejor tener una clase o una serie de condicionales para que pueda trabajar el sitio de manera transparente? Veo que este proyecto lo tenías parado durante 2 años. Supongo que es por éso que tengas desactualizado el BeautifulSoup, que anda por la versión 4. Por otro lado, las mejoras de las que hablas no parecen complicadas de implementar. Ya dirás si has encontrado algún problema. Tengo un proyecto[1] parecido para descargar ebooks de páginas webs. Utilizo la infraestructura facilitada por calibre, una utilidad bastante popular, hecha en python, que sirve para catalogar y transformar libros electrónicos (incluyendo los formatos cbr y cbz, entre otros muchos). Entre otras características, mis scripts trabajan en multihilo, lo que mejora bastante los tiempos de descarga, y es capaz de bajar los metadatos para incorporalos al catálogo del calibre. No creo que te sirvan de mucho mis scripts para mejorar el tuyo, pero sí que vería factible aprovecharlo para crear un nuevo scrap para el mío. Tendría que estudiarlo. [1]: http://hg.ch3m4.org/calibre-scrap calibre-scrap -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ -- Alexandro Colorado Apache OpenOffice Contributor http://es.openoffice.org ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Otaku script
El 12 de febrero de 2013 10:54, Alexandro Colorado j...@oooes.org escribió: 2013/2/12 Chema Cortes pych...@gmail.com El 12 de febrero de 2013 06:24, Alexandro Colorado j...@oooes.orgescribió: Hola, no se cuanto fan de Anime y Manga Japonesa haya por aqui, pero tengo un script que jala del sitio http://www.mangareader.net/ comics usando python, curl y beautifulsoup. Estas imagenes las mete en un folder que crea y titula como el comic. No veo que preguntes nada en concreto, así que sólo pondré algunos comentarios: La pregunta es mas de deciones, seria mejor tener una clase o una serie de condicionales para que pueda trabajar el sitio de manera transparente? No es fácil trabajar con condicionales. Las dos webs pueden requerír distintas estrategias para extraer la información e implementar ésto con condicionales es muy farragoso. Mucho más adecuado es darle una orientación a objetos, con un script principal que lleve la lógica de la extracción de datos y luego varias clases con el método de extracción específico para cada web. Mi recomendación es que te construyas una API sencilla con la que se comuniquen el método principal y los scrappers. Esta API iría como una clase abstracta de la cuál derivarían las clases para los scrappers. -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Correccion programa
2013/2/11 kurokysan kuroky...@gmail.com: Buenas noches companeros, les publico este codigo que he realizado con el objetivo de monitorear si un equipo de red se encuentra online. Las modificaciones que quisiera que me ayudaran es como hacer para que los destinatarios se tomen desde un archivo macct.txt. Otra cosa seria como Asumiendo que macct.txt tiene el formato correcto para el campo To del correo, lo lees con `mlist = macct.read()` y lo usas en sendmail: mailServer.sendmail(kuroky...@gmail.com, mlist, msg.as_string()) podria lograr que la salida que da este script por pantalla se pueda adjuntar al cuerpo del correo. Guarda lo que quieres mostrar por pantalla en una variable, lo imprimes y luego la utilizas para crear tu objeto MIMEText. Saludos -- A menudo unas pocas horas de Prueba y error podrán ahorrarte minutos de leer manuales. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Correccion programa
Carlos, lo hice de esa forma...pero al devolverlo como una lista, me da error. la salida se ve asi, kuroky...@gmail.com\n El 12 de febrero de 2013 14:08, Carlos Zuniga carlos@gmail.comescribió: 2013/2/11 kurokysan kuroky...@gmail.com: Buenas noches companeros, les publico este codigo que he realizado con el objetivo de monitorear si un equipo de red se encuentra online. Las modificaciones que quisiera que me ayudaran es como hacer para que los destinatarios se tomen desde un archivo macct.txt. Otra cosa seria como Asumiendo que macct.txt tiene el formato correcto para el campo To del correo, lo lees con `mlist = macct.read()` y lo usas en sendmail: mailServer.sendmail(kuroky...@gmail.com, mlist, msg.as_string()) podria lograr que la salida que da este script por pantalla se pueda adjuntar al cuerpo del correo. Guarda lo que quieres mostrar por pantalla en una variable, lo imprimes y luego la utilizas para crear tu objeto MIMEText. Saludos -- A menudo unas pocas horas de Prueba y error podrán ahorrarte minutos de leer manuales. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ -- Ksanchez ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Dibujar trayectorias sobre un mapa usando matplotlib-basemap
Thank you for your ideas, I leave the correct code to plot trajectories of any object, in my case I have drawn the trajectories of convective storms. 1. # --- Construimos el mapa --- 2. 3. import numpy as np 4. from mpl_toolkits.basemap import Basemap 5. import matplotlib.pyplot as plt 6. from PIL import * 7. fig = plt.figure(figsize=(12,12)) 8. 9. ax = fig.add_axes([0.1,0.1,0.8,0.8]) 10. 11. m = Basemap(projection='cyl', llcrnrlat=12, urcrnrlat=35,llcrnrlon=-120, urcrnrlon=-80, resolution='c', area_thresh=1000.) 12. 13. m.bluemarble() 14. m.drawcoastlines(linewidth=0.5) 15. m.drawcountries(linewidth=0.5) 16. m.drawstates(linewidth=0.5) 17. 18. # --- Dibujamos paralelos y meridianos --- 19. 20. m.drawparallels(np.arange(10.,35.,5.),labels=[1,0,0,1]) 21. m.drawmeridians(np.arange(-120.,-80.,5.),labels=[1,0,0,1]) 22. m.drawmapboundary(fill_color='aqua') 23. 24. # --- Abrimos el archivo que contiene los datos --- 25. 26. import pandas as pd 27. 28. df = pd.read_csv('scm-2004.csv') 29. for evento, group in df.groupby(['evento']): 30. latitude = group.lat.values 31. longitude = group.lon.values 32. x,y = m(longitude, latitude) 33. plt.plot(x,y,'y-',linewidth=2 ) 34. plt.xlabel('Longitud') 35. plt.ylabel('Latitud') 36. plt.title('Trayectorias de Sistemas Convectivos 2004') 37. 38. 39. 40. plt.savefig('track-2004.jpg', dpi=100) With the above code, I get the desired figure. 60 paths drawn on the map of México. I have only one last question: how could indicate the start of each of the storms, someone has an idea how I can do this? De: Python-es [python-es-bounces+glez_b=comunidad.unam...@python.org] en nombre de Kiko [kikocorre...@gmail.com] Enviado: miércoles, 30 de enero de 2013 02:01 a.m. Para: La lista de python en castellano Asunto: Re: [Python-es] Dibujar trayectorias sobre un mapa usando matplotlib-basemap El 29 de enero de 2013 20:37, Boris Vladimir Comi gle...@comunidad.unam.mxmailto:gle...@comunidad.unam.mx escribió: Gracias por tomarte el tiempo en responder, ya estructure mis datos en la forma que me indicas y he obtneido el producuto deseado. Ahora mi preguntas es, si mi archivo tiene mas de 30 trayectorias como las puedo graficar usando un for De: Python-es [python-es-bounces+glez_b=comunidad.unam...@python.orgmailto:comunidad.unam...@python.org] en nombre de Kiko [kikocorre...@gmail.commailto:kikocorre...@gmail.com] Enviado: martes, 29 de enero de 2013 01:48 a.m. Para: La lista de python en castellano Asunto: Re: [Python-es] Dibujar trayectorias sobre un mapa usando matplotlib-basemap #!/usr/bin/python #Project Storm: Plot trajectories of convective systems #import libraries import numpy as np from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as pl # Plot a map for Mexico m = Basemap(projection='cyl', llcrnrlat=12, urcrnrlat=35,llcrnrlon=-120, urcrnrlon=-80, resolution='c', area_thresh=1000.) m.bluemarble() m.drawcoastlines(linewidth=0.5) m.drawcountries(linewidth=0.5) m.drawstates(linewidth=0.5) #Draw parallels and meridians m.drawparallels(np.arange(10.,35.,5.)) m.drawmeridians(np.arange(-120.,-80.,10.)) m.drawmapboundary(fill_color='aqua') #Open file whit numpy El código anterior es lo que quieres. A partir de aquí usaría: data = np.array([['19.70','-95.20','2/5/04 6:45 AM','1','-38','CCM'], ['19.70','-94.70','2/5/04 7:45 AM','1','-48','CCM'], ['19.30','-93.90','2/5/04 8:45 AM','1','-60','CCM'], ['19.00','-93.50','2/5/04 9:45 AM','1','-58','CCM'], ['19.00','-92.80','2/5/04 10:45 AM','1','-50','CCM'], ['19.20','-92.60','2/5/04 11:45 AM','1','-40','CCM'], ['19.90','-93.00','2/5/04 12:45 PM','1','-43','CCM'], ['20.00','-92.80','2/5/04 1:15 PM','1','-32','CCM'], ['23.10','-100.20','30/5/04 4:45 AM','2','-45','SCME'], ['23.20','-100.00','30/5/04 5:45 AM','2','-56','SCME'], ['23.30','-100.00','30/5/04 6:45 AM','2','-48','SCME'], ['23.30','-100.20','30/5/04 7:45 AM','2','-32','SCME'], ['23.40','-99.00','31/5/04 3:15 AM','3','-36','SCM'], ['23.50','-98.90','31/5/04 4:15 AM','3','-46','SCM'], ['23.60','-98.70','31/5/04 5:15 AM','3','-68','SCM'], ['23.70','-98.80','31/5/04 6:15 AM','3','-30','SCM']]) latitude = data[:,0].astype(np.float) longitude = data[:,1].astype(np.float) ## x, y no te hacen falta para nada en este contexto #Plot the points on the map, puedes usar un for. En este caso son solo tres casos y lo pongo explícito. pl.plot(longitude[data[:,3] == '1'], latitude[data[:,3] == '1'],'ro-') # El primer ¿sistema convectivo de mesoescala? pl.plot(longitude[data[:,3] == '2'], latitude[data[:,3] == '2'],'yo-') # el segundo pl.plot(longitude[data[:,3] == '3'], latitude[data[:,3] == '3'],'go-') # y el tercero pl.show() Hola, fíjate en qué es lo que cambia en las tres líneas
Re: [Python-es] Dibujar trayectorias sobre un mapa usando matplotlib-basemap
2013/2/12 Boris Vladimir Comi gle...@comunidad.unam.mx Thank you for your ideas, I leave the correct code to plot trajectories of any object, in my case I have drawn the trajectories of convective storms. 1. # --- Construimos el mapa --- 2. 3. import numpy as np 4. from mpl_toolkits.basemap import Basemap 5. import matplotlib.pyplot as plt 6. from PIL import * 7. fig = plt.figure(figsize=(12,12)) 8. 9. ax = fig.add_axes([0.1,0.1,0.8,0.8]) 10. 11. m = Basemap(projection='cyl', llcrnrlat=12, urcrnrlat=35,llcrnrlon=-120, urcrnrlon=-80, resolution='c', area_thresh=1000.) 12. 13. m.bluemarble() 14. m.drawcoastlines(linewidth=0.5) 15. m.drawcountries(linewidth=0.5) 16. m.drawstates(linewidth=0.5) 17. 18. # --- Dibujamos paralelos y meridianos --- 19. 20. m.drawparallels(np.arange(10.,35.,5.),labels=[1,0,0,1]) 21. m.drawmeridians(np.arange(-120.,-80.,5.),labels=[1,0,0,1]) 22. m.drawmapboundary(fill_color='aqua') 23. 24. # --- Abrimos el archivo que contiene los datos --- 25. 26. import pandas as pd 27. 28. df = pd.read_csv('scm-2004.csv') 29. for evento, group in df.groupby(['evento']): 30. latitude = group.lat.values 31. longitude = group.lon.values 32. x,y = m(longitude, latitude) 33. plt.plot(x,y,'y-',linewidth=2 ) 34. plt.xlabel('Longitud') 35. plt.ylabel('Latitud') 36. plt.title('Trayectorias de Sistemas Convectivos 2004') 37. 38. 39. 40. plt.savefig('track-2004.jpg', dpi=100) With the above code, I get the desired figure. 60 paths drawn on the map of México. I have only one last question: how could indicate the start of each of the storms, someone has an idea how I can do this? Una pregunta, ¿por qué hablas en inglés en la lista de python en español? Respecto a tu pregunta, puedes dibujar solo el punto inicial de la trayectoria usando plt.plot o plt.scatter con x[0] e y[0] cambiando el color de ese punto o el marcador que se usa para la trayectoria teniendo un marcador diferente para el origen de la tormenta. Este plt.plot o plt. scatter deberías usarlo después del plt.plot que usas para la trayectoria completa para que se dibuje por encima de ella. Saludos. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/