phpBB Users

Descarcă de pe internet nick-urile tutoror utilizatorilor de pe un forum phpBB folosind urllib, şi le scrie într-un fişier specificat.

import urllib, time

def usernames(str, start='" class="gen">', end='</a></span></td>'):
    i = 0
    adaug = False
    ls = len(start)
    le = len(end)
    names = []
    name = ''
    while i<len(str):
        if adaug:
            if str[i:i+le] != end:
                name += str[i]
            else:
                i += le-1
                adaug = False
                names.append(name)
                name = ''
        else:
            if str[i:i+ls]==start:
                i += ls-1
                adaug = True
        i += 1
    return names
def acum():
    return time.strftime("[%H:%M:%S]")

site = raw_input("Ce forum phpBB vrei\nEx: www.cinemagia.ro/forum/\n")
nr = int(raw_input("Cate pagini sunt pe memberlist: "))
pepg = int(raw_input("Cati utilizatori sunt pe pagina: "))
file = raw_input("In ce fisier sa fie salvati utilizatorii: ")
v = raw_input("Sa printez utilizatori pe ecran (d/n): ")
print acum(), "Start"

f = open(file, "w")             
          
for i in range(nr):
    nume_pagina = "http://" + site + 'memberlist.php?mode=joindate&sort_order=ASC&start=' + str(i*pepg)
    print acum(), "Descarc pagina", i+1
    pg = urllib.urlopen(nume_pagina).read()
    names = usernames(pg)
    if v=="d": print names
    for j in xrange(len(names)):
        f.write(names[j]+"\n")

print acum(), "Terminat"
f.close()