[SOLUCIONADO] Regexp + urrlib2

Iniciado por blozzter, Agosto 22, 2011, 06:05:50 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Agosto 22, 2011, 06:05:50 PM Ultima modificación: Marzo 14, 2014, 10:48:02 PM por Expermicid
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

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:
¡< blozzter >!

Buenas, el error esta en la Exprecion Regular, exactamente en la linea 8 donde capturas mediante expreciones regulares el nick.

Este seria el contenido
Código: php
<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...

Código: php
<div class=\"username\"><h4>(.*)\s<span class=\"position\">


Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.