Foros del Web » Programando para Internet » Python »

[Aporte] Programa wx.ForosDelWeb - Lector de los últimos 30 Temas del Foro Python

Estas en el tema de [Aporte] Programa wx.ForosDelWeb - Lector de los últimos 30 Temas del Foro Python en el foro de Python en Foros del Web. Hola amigos!! Bueno voy a dejar un aporte de un programa que hice en wxPython, el mismo es simple, sólo muestra en una ventana dentro ...
  #1 (permalink)  
Antiguo 25/03/2014, 01:09
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
[Aporte] Programa wx.ForosDelWeb - Lector de los últimos 30 Temas del Foro Python

Hola amigos!!
Bueno voy a dejar un aporte de un programa que hice en wxPython, el mismo es simple, sólo muestra en una ventana dentro del ListCtrl los últimos 30 Temas del Foro Python, también muestra el Autor de la persona que inició el tema, también muestra las visitas, respuestas, fecha, hora y algo que todavía no funciona del todo, es la última persona que ha respondido a un X tema.
Esto que falta mejorar se los voy a dejar a ustedes para que aprendan sobre wxPython y como se hace para extraer datos de una web, yo he hecho hasta bots para IRC que extraen información de una web, como noticias, horoscopo, clima, etc.
Pero lamentablemente siempre me ha pasado que esos códigos quedan inservibles y he tenido que reestructurarlos ya que la página de donde extraía la info había sido modificada, en si los foros pueden ser inmunes a estos cambios durante años, así que estaría bastante bien crear un código así para un Foro!!
Comento esto porque he leído en muchísimos foros a personas pidiendo ayuda o explicación de porque un script le ha dejado de funcionar si antes andaba muy bien o que el script ya no funcionaba correctamente ya que además de por ej mostrar las noticias, también mostraba etiquetas HTML.
Bueno sólo dejo este programa para que aprendan un poco y para que lo puedan mejorar, eso si, por favor tengan en cuenta el Autor.
Demen los créditos correspondientes, digo esto porque lo dejo así opensource para que puedan mejorarlo, durante mucho tiempo he creado scripts para mIRC (programa de chat IRC) y me ha dolido ver mis códigos por ahí sin autor, códigos en los que me ha llevado horas enteras y hasta incluso semanas en terminarlos y no es justo ver tu trabajo con el nombre de otro Autor, también he visto códigos míos casi completos, todo el código menos la parte donde está escrito del Nick del Autor (Príncipe_Azul), quizás a muchas personas esto no le importe porque tendrán tiempo de sobra, pero para mi es feo ver mi trabajo con créditos para otra persona que no me ayudó en nada, además los publiqué gratuitos.
Bueno amigos espero que puedan mejorar este Visor por decirle de alguna forma, ojalá les gusto este pequeño granito de arena que hoy compartí con ustedes.

Aquí dejo una captura del programa:

http://subefotos.com/ver/?d1537647f3762de6584ba83985497d0eo.png

Y aquí el programa:

Código Python:
Ver original
  1. # -*- coding: utf-8 -*-
  2. # wx.ForosDelWeb
  3.  
  4. import wx, urllib2
  5.  
  6. Navegador = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)"
  7. ConfigNavegador = {"User-Agent": Navegador}
  8. URLSolicitud = urllib2.Request("http://www.forosdelweb.com/f130/", headers=ConfigNavegador)
  9.  
  10. class ForosDelWeb(wx.Frame):
  11.     def __init__(self, parent, id, title):
  12.         wx.Frame.__init__(self, parent, id, title, style=wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN | wx.RESIZE_BORDER)
  13.         self.Panel = wx.Panel(self, -1)
  14.         MenuPrograma = wx.Menu()
  15.         MenuOpcion = wx.MenuBar()
  16.         MenuPrograma.Append(1, "Ver Temas", "")
  17.         MenuPrograma.Append(2, "Autor", "")
  18.         MenuPrograma.Append(3, "Salir", "")
  19.         MenuOpcion.Append(MenuPrograma, "Opciones")
  20.         self.SetMenuBar(MenuOpcion)
  21.         wx.EVT_MENU(self, 1, self.MostrarTemas)
  22.         wx.EVT_MENU(self, 2, self.Autor)
  23.         wx.EVT_MENU(self, 3, self.Salir)
  24.         Fuente = wx.Font(11, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "Verdana")
  25.         self.Lista = wx.ListCtrl(self.Panel, -1, pos=(15,15), size=(1100,650), style=wx.LC_REPORT)
  26.         self.Lista.SetFont(Fuente)
  27.         self.Lista.InsertColumn(0, "Tema", width=538)
  28.         self.Lista.InsertColumn(1, "Autor", width=165)
  29.         self.Lista.InsertColumn(2, "Fecha/Hora", width=180)
  30.         self.Lista.InsertColumn(3, "Ultimo Msj por", width=160)
  31.         self.Lista.InsertColumn(4, "Respuestas", width=110)
  32.         self.Lista.InsertColumn(5, "Visitas", width=85)
  33.         self.Redimensionador = wx.BoxSizer(wx.VERTICAL)
  34.         self.Redimensionador.Add(self.Lista, proportion=1, flag=wx.ALL|wx.EXPAND, border=15)
  35.         self.Panel.SetSizer(self.Redimensionador)
  36.  
  37.         self.Show()
  38.         self.Maximize()
  39.  
  40.     def MostrarTemas(self, event):
  41.         Web_HTML = urllib2.urlopen(URLSolicitud)
  42.         Codigo_HTML = Web_HTML.read()
  43.         Web_HTML.close()
  44.         Tema2 = ""
  45.         for Linea in Codigo_HTML.splitlines():
  46.             if "[SOLUCIONADO]" in Linea:
  47.                 Tema2 = "[SOLUCIONADO]"
  48.             if 'id="thread_title_' in Linea:
  49.                 try:
  50.                     Tema = Tema2 + Linea[Linea.find('id="thread_title_')+25:Linea.find('</a> </div> <div class="smallfont">')]
  51.                     Tema2 = ""
  52.                     if "FAQ's de Python" in Tema:
  53.                         Tema = "FAQ's de Python"
  54.                 except:
  55.                     pass
  56.                 self.Lista.InsertStringItem(0, Tema.replace(">", ""))
  57.                 self.ItemCreado = "si"
  58.             if "'_self')\">" in Linea:
  59.                 Autor = Linea[Linea.find("'_self')\">")+10:Linea.find("</span> </div> </td>")]
  60.                 self.Lista.SetStringItem(0, 1, Autor)
  61.             if ' <span class="time">' in Linea:
  62.                 Fecha = Linea.replace(' <span class="time">', " ").replace("</span><br/>", "")
  63.                 self.Lista.SetStringItem(0, 2, Fecha)
  64.             if '" rel="nofollow">' in Linea:
  65.                 UltimoPostPor = Linea[Linea.find('" rel="nofollow">')+17:Linea.find('</a> <a href="http://www.forosdelweb.com/f130/')]
  66.                 try:
  67.                     if self.ItemCreado == "si":
  68.                         self.Lista.SetStringItem(0, 3, UltimoPostPor)
  69.                 except:
  70.                     pass
  71.             if 'title="Respuestas:' in Linea:
  72.                 Respuestas = "     " + Linea[Linea.find('title="Respuestas:')+19:Linea.find(", Visitas:")]
  73.                 self.Lista.SetStringItem(0, 4, Respuestas)
  74.             if ", Visitas:" in Linea:
  75.                 Visitas = Linea[Linea.find(", Visitas:")+11:Linea.find('"> <div class="smallfont" style="text-align:right;')]
  76.                 self.Lista.SetStringItem(0, 5, Visitas)
  77.  
  78.     def Autor(self, event):
  79.         Autor_Daniel = wx.MessageDialog(self, "Lector de los primeros 30 Temas del Foro Python", "Autor: Daniel Delgado", wx.OK | wx.ICON_INFORMATION)
  80.         Autor_Daniel.ShowModal()
  81.     def Salir(self, event):
  82.         self.Close()
  83.  
  84. ForoPython = wx.App()
  85. ForosDelWeb(None, -1, "Temas Python")
  86. ForoPython.MainLoop()


Muchas gracias, que Dios los bendiga y hasta siempre.

Última edición por Principe_Azul; 25/03/2014 a las 01:18
  #2 (permalink)  
Antiguo 25/03/2014, 12:48
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 10 meses
Puntos: 35
Respuesta: [Aporte] Programa wx.ForosDelWeb - Lector de los últimos 30 Temas del Foro

Muy bueno!!
  #3 (permalink)  
Antiguo 25/03/2014, 14:09
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: [Aporte] Programa wx.ForosDelWeb - Lector de los últimos 30 Temas del Foro

Muchas gracias amigo!!
  #4 (permalink)  
Antiguo 25/03/2014, 14:24
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: [Aporte] Programa wx.ForosDelWeb - Lector de los últimos 30 Temas del Foro

Quiero aclararles algo amigos, pueden mejorarlo al programa y hacerlo un tipo navegador para el Foro o lo que ustedes deseen.
Pueden poner tranquilamente su Nombre como Autor del programa, pero al menos un "Gracias a Daniel Delgado" o "Colaboracion de Daniel Delgado", eso me animaría muchísimo, pero lo que más me animaría y me pondría muy féliz es ver ese simple código que dejé convertido en un excelente programa, eso es lo que deseo, deseo que puedan trabajar y aprender con ese pequeño comienzo.
Y verlo después a ese código que dejé como un muy buen programa, eso me encantaría.
Gracias a todos.

Etiquetas: foro, ip, lector, programa, temas, ventana, wxpython
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:17.