Resultados 1 a 10 de 10

Tópico: [Python] Desafio #01: Obtendo usuarios online

  1. #1
    Hacker ingresso Avatar de guedes.acp
    Data de Ingresso
    Sep 2010
    Localização
    #!/usr/bin/env perl
    Posts
    1.444
    Post Thanks / Like

    [Python] Desafio #01: Obtendo usuarios online

    Boa tarde Pythonzeiros

    Vamos movimentar essa budega aqui?????

    Ok! Lanço aos nossos amigos Pythonzeiros e aspirantes o seguinte desafio!

    Um script que obtenha a lista de usuarios online na pagina oficial do Forum Invaders



    Em seguida a organize em ordem alfabetica inversa, ou seja, segundo a imagem o meu nick seria o ultimo da lista!

    Caso não seja pedir muito, faça contar o numero de usuarios da lista, porem essa parte NÃO é para
    obter da pagina, e sim da string que contem a lista de nomes!

    O desafio é simples, mas esta bom para começar!
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!


    just another biomedical perl hacker try to learn Delphi

  2. #2
    Veterano ingresso
    Data de Ingresso
    Jan 2011
    Localização
    Pguá ~ PR
    Posts
    2.363
    Post Thanks / Like
    Você teria uma solução em Python ou talvez em Perl sobre desse desafio?

  3. #3
    Hacker ingresso Avatar de guedes.acp
    Data de Ingresso
    Sep 2010
    Localização
    #!/usr/bin/env perl
    Posts
    1.444
    Post Thanks / Like
    Perl:

    Código PHP:
    #!/usr/bin/perl   
       
    use strict;   
    use 
    warnings;  
    use 
    LWP::Simple
      
    my $html get('http://www.forum-invaders.com.br/vb/'); 
    my $tot  0
      
    while(
    $html =~ /class="viewing">\((\d+)\s+Vendo/g) { 
        
    $tot += $1
        print 
    $tot"\n"


    Tinha feito em Python, mas perdi, farei denovo, na verdade eu não postei porque queria ver o movimento ativo dos Pythonzeiros, mas parece que você foiu o primeiro a despertar algum interesse.

    Essa solução acima tah estruturada, em Python provavelmente tera que explora muito recurso de objeto.
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!


    just another biomedical perl hacker try to learn Delphi

  4. #4
    Membro ingresso Avatar de hacker_wap
    Data de Ingresso
    Feb 2009
    Posts
    151
    Post Thanks / Like
    acpguedes creio que você postou o script errado...
    Bom segue minha solução em para o que foi pedido no topico.

    Não costumo programar em python, mais segue minha solução.
    Código PHP:
    #!usr/bin/python

    import urllib2
    from bs4 import BeautifulSoup
    import string

    url 
    "http://www.forum-invaders.com.br"

    request urllib2.Request(url)
    document urllib2.urlopen(request).read()

    soup BeautifulSoup(document)
    elements soup.find(id "wgo_onlineusers_list").find_all("a")

    users = []
    for 
    element in elements:
        if 
    element.span :
            
    users.append(element.span.contents[0])
        else :
            
    users.append(element.contents[0])

    users.sort(key=string.lowerreverse=True)
    print 
    len(users), "usuarios online"', '.join(users
    É melhor não dizer nada e pensarem que é bobo, do que abrir a boca e acabar com as duvidas.

  5. #5
    Veterano ingresso
    Data de Ingresso
    Jan 2011
    Localização
    Pguá ~ PR
    Posts
    2.363
    Post Thanks / Like
    Já faz um bom tempo que o tópico foi criado mas hoje sem muito o que fazer, resolvi postar minha solução.

    Código PHP:
    #!/usr/bin/python

    from urllib import urlopen
    from BeautifulSoup import BeautifulSoup

    link 
    'http://www.forum-invaders.com.br/'
    html urlopen(link).read()
    soup BeautifulSoup(html)
    jogo soup.findAll(id 'wgo_onlineusers_list')

    for 
    i in jogo: print(str(i.text)) 
    Última edição por str0p; 02 Sep 2013 às 14:10.

  6. #6
    Membro ingresso
    Data de Ingresso
    Apr 2012
    Posts
    70
    Post Thanks / Like
    Fiz isso:

    Código PHP:
    #!/usr/bin/env python

    from urllib2 import urlopen,Request
    import re

    body 
    urlopen(Request('http://www.forum-invaders.com.br/vb/forum.php')).read()
    for 
    i in re.findall('<span class="shade">(.*)</span>'bodyre.IGNORECASE):
            print 


  7. Likes gui-ch liked this post
  8. #7
    Novato
    Data de Ingresso
    Aug 2008
    Posts
    3
    Post Thanks / Like
    Citação Postado originalmente por mmxm Ver Post
    Fiz isso:

    Código PHP:
    #!/usr/bin/env python

    from urllib2 import urlopen,Request
    import re

    body 
    urlopen(Request('http://www.forum-invaders.com.br/vb/forum.php')).read()
    for 
    i in re.findall('<span class="shade">(.*)</span>'bodyre.IGNORECASE):
            print 

    Dei uma modificado em seu código para exibir os usuários em ordem inversa.

    Código PHP:
    # coding=utf-8
    from urllib2 import urlopen,Request
    import re

    body 
    urlopen(Request('http://www.forum-invaders.com.br/vb/forum.php')).read()
    list_users=''
    count_users=0
    for i in re.findall('<li><a class="username" href(.*)</a>, </li>'bodyre.IGNORECASE):
        
    list_users=i[i.index('>')+1:] + ', ' +list_users
        count_users
    +=1
    print 'Usuários online (%d): %s'%(count_users,list_users[:-2]) 
    Resultado:

    Código:
    Usußrios online (31): pasyaerrwm, pacdffgsvdrmqh, pacdffgsvdrlid, pacdffgsvdrfwg
    , OmTFApcktW, ojkhhhozar, ojkhhhollc, NqCHArpjfL, Miltonnerb, MaVAJebqtH, LkHSPy
    zcqM, ljdwefdsyrovhd, ljdwefdsyrosqp, ljdwefdsyrofni, ljdedseyrowpz, ljdedseyron
    hm, ljdedseyrofuj, ljdedseyroavm, ljdedseyroaar, lfgddolqs, KlQCPlthgD, JvZTOixb
    vS, GmXORmameE, GlRYNsbgqJ, ffdgqfz, FeOLRihykI, ErVYTusiyO, Brormimimem, BgZMQw
    jwoT, ApECIsfobF, AkKJObolzE

  9. #8
    Membro Avançado ingresso
    Data de Ingresso
    Dec 2011
    Localização
    !/usr/bin/env perl
    Posts
    868
    Post Thanks / Like
    Tem uma forma mais fácil de obter a lista de usuários online.
    Basta criar um gerador de letras aleatórias e criar uma lista delas separando por vírgula.

  10. #9
    Novato
    Data de Ingresso
    Aug 2008
    Posts
    3
    Post Thanks / Like
    Pequena alteração usando array para simplificar.

    Código PHP:
    # coding=latin1
    from urllib2 import urlopen,Request
    import re

    body 
    urlopen(Request('http://www.forum-invaders.com.br/vb/forum.php')).read()
    users=[]
    for 
    i in re.findall('<li><a class="username" href(.*)</a>, </li>'bodyre.IGNORECASE):
        
    users.append(i[i.index('>')+1:])
    users.reverse()    
    print 
    'Usuários online (%d): %s'%(len(users),users

  11. #10
    Novato
    Data de Ingresso
    Aug 2008
    Posts
    3
    Post Thanks / Like
    Não posso editar?

    Saída:

    Código:
    Usußrios online (14): ['VzWSRtcvwZ', 'unlilerniny', 'RoQCKhtbtO', 'PqQNFemdlH',
    'NcOCTtmgnN', 'Kennethmic', 'IoKEKiboiI', 'IbFQWduykT', 'gui-ch', 'GgQXLaybrR',
    'FbSGNwdqjF', 'CtJXFmmfmC', 'BoKMLqdhyZ', 'AUrbagegaH']

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •