Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: blozzter en Agosto 22, 2011, 06:05:50 PM

Título: [SOLUCIONADO] Regexp + urrlib2
Publicado por: blozzter en Agosto 22, 2011, 06:05:50 PM
hola,
me interesa hacer una función que retorne la cantidad de post de cierto usuario de Underc0de.
escribí el code, pero no sé que error tiene, basicamente no retorna cuando se cumple la condicion, lo depuré y no entiendo el por qué.


Código (python) [Seleccionar]

import re, urllib2

   
def countpost(nick):
    for i in range(1, 7390):
        source = urllib2.urlopen("http://foro.underc0de.org/index.php?action=profile;u=%s"%i).read()
        mensajes = re.findall("<dd>(.*)\)", source)   
        usuario = re.findall("<div class=\"username\"><h4>(.*)<span class=\"position\">", source)
        usuario = str(usuario[0])
        if usuario == nick:
            return mensajes
           
msg = countpost("ANTRAX")
print msg[0],')'


la condición se cumple:
(http://s3.subirimagenes.com:81/imagen/previo/thump_6832784captura.png)
Título: Re:[duda]regexp + urrlib2
Publicado por: ~ Yoya ~ en Agosto 22, 2011, 07:05:13 PM
Buenas, el error esta en la Exprecion Regular, exactamente en la linea 8 donde capturas mediante expreciones regulares el nick.

Este seria el contenido
<div class="username"><h4>ANTRAX <span class="position">
<div class="username"><h4>GAM3 OV3R <span class="position">


Si te fijas después de cada nick existe un espacio, entonce lo que estas haciendo es capturando el nick + el espacio en blanco, por lo tanto cuando intentas comparar siempre los datos serán diferente ya que uno tiene un espacio de mas...

Con esta Exprecion Regular Bastara...

<div class=\"username\"><h4>(.*)\s<span class=\"position\">

Saludos.