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é.
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)
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.