Saltar para: Posts [1], Pesquisa [2]

Bits & Bots

Robôs e pedaços de bits do planeta wikimédia e arredores.

Bits & Bots

Robôs e pedaços de bits do planeta wikimédia e arredores.

Os artigos mais editados em 2017: artigos relacionados com Portugal e Brasil

por Alchimista, em 28.12.17

figure_1.png

 

Na elaboração da listagem dos artigos mais editados em 2016 surgiu a curiosidade de saber até que ponto haveriam artigos relacionados a Portugal na lista dos mais editados, então fui desenvolvendo um sistema que permitisse de forma simples uma filtragem dos artigos mais editados por país. A solução adoptada foi criar uma listagem de todas as subcategorias de Categoria:Portugal, até um nível de profundidade 6, e comparar com as presentes nos artigos. Existem ainda pormenores a aprimorar, contudo os resultados são já convincentes.

 

E se já é sabido que Eleições autárquicas portuguesas de 2017 foi, de acordo com a lista de artigos mais editados em 2017, o artigo mais editado de 2017, a lista dos 25 artigos mais editados relacionados com Portugal é a seguinte:

  1.  Eleições autárquicas portuguesas de 2017 (2063 edições)
  2.  Festival Eurovisão da Canção 2018 (847 edições)
  3.  Santuário de Fátima (676 edições)
  4.  Soy Luna (675 edições)
  5.  Ouro Verde (telenovela) (507 edições)
  6.  Jogo Duplo (telenovela) (500 edições)
  7.  A Herdeira (telenovela) (456 edições)
  8.  XXI Governo Constitucional de Portugal (450 edições)
  9.  Raven's Home (401 edições)
  10.  Pabllo Vittar (390 edições)
  11.  Seleção Portuguesa de Futebol (357 edições)
  12.  Amor Maior (352 edições)
  13.  Primeira Liga de 2017–18 (338 edições)
  14.  Discografia de Anitta (338 edições)
  15.  Cristiano Ronaldo (331 edições)
  16.  Primeira Liga de 2016–17 (328 edições)
  17.  Club de Regatas Vasco da Gama (324 edições)
  18.  A Impostora (320 edições)
  19.  Copa das Confederações FIFA de 2017 (313 edições)
  20.  Sporting Clube de Portugal (303 edições)
  21.  The Voice Portugal (5.ª edição) (299 edições)
  22.  Grey's Anatomy (288 edições)
  23.  Agarra a Música (288 edições)
  24.  Maia (275 edições)
  25.  Lista de prêmios e indicações recebidos por Anitta (271 edições)

 

 

No caso do brasil, adaptando o script, a listagem é a seguinte:

  1.  2017 na televisão brasileira (1503 edições)
  2.  Big Brother Brasil 17 (1367 edições)
  3.  A Fazenda: Nova Chance (1234 edições)
  4.  Campeonato Brasileiro de Futebol de 2017 - Série A (960 edições)
  5.  Campeonato Brasileiro de Futebol de 2017 - Série B (768 edições)
  6.  Operação Lava Jato (189 edições)
  7.  A Força do Querer (749 edições)
  8.  Miss Brasil 2017 (730 edições)
  9.  Campeonato Brasileiro de Futebol de 2017 - Série D (641 edições)
  10.  Temporada do Sport Club Corinthians Paulista de 2017 (633 edições)
  11.  Temporada do Clube de Regatas do Flamengo de 2017 (612 edições)
  12.  Copa do Brasil de Futebol de 2017 (581 edições)
  13.  Figueirense Futebol Clube (556 edições)
  14.  Copa do Nordeste de Futebol de 2017 (556 edições)
  15.  Os Dias Eram Assim (531 edições)
  16.  Olavo de Carvalho (230 edições)
  17.  Exathlon Brasil (511 edições)
  18.  Nenê (futebolista) (510 edições)
  19.  Ouro Verde (telenovela) (507 edições)
  20.  Resultados do primeiro turno do Campeonato Brasileiro de Futebol de 2017 - Série A (502 edições)
  21.  Associação Chapecoense de Futebol (486 edições)
  22.  Barreiras (482 edições)
  23.  Pega Pega (478 edições)
  24.  Campeonato Brasileiro de Futebol de 2017 - Série C (469 edições)
  25.  Governo Michel Temer (159 edições)

Os artigos mais editados em 2017: Autárquicas, tv, tv, Brasileirão e Eurovisão.

por Alchimista, em 27.12.17

Política, televisão e futebol são os temas mais editados em 2017.

E há um editor a tentar elevar Dostoiévski a destacado!

 

wp.png

 

Todos os dias, milhares de editores voluntários dedicam parte do seu tempo a editar a wikipédia, ajudando a manter e expandir o maior projecto cultural do mundo. É a soma de todas essas pequenas contribuições que fazem crescer o projecto, e permite igualmente verificar quais foram os artigos e os tópicos que receberam mais atenção, pelo menos em termos de número de edições. E se 2017 começou com cerca de 950 000 artigos no domínio principal, chega ao fim do ano com mais de 985 000, um acréscimo de cerca de 35 000 artigos.

 

 

   Este ano, o artigo sobre as  Eleições autárquicas portuguesas de 2017 foi o mais editado, 2063 edições no total, sendo o único artigo do Top 5 não relacionado com programas televisivos. No grupo dos 10 artigos mais editados, temos as autárquicas portuguesas, o Campeonato Brasileiro de Futebol de 2017 - Série A e Fiódor Dostoiévski intrometidos numa listagem de 7 artigos sobre programas televisivos.

 

 

    No caso de Fiódor Dostoiévski, julgo que o artigo se encontra em desenvolvimento para ser declarado conteúdo destacado, vamos ver o que 2018 lhe reserva.

 

   Com dados de 1 de Janeiro até 27 de Dezembro, os 20 artigos mais editados na wikipédia Lusófona foram os seguintes:

 

  1.  Eleições autárquicas portuguesas de 2017 (2063 edições)
  2.  2017 na televisão brasileira (1503 edições)
  3.  Big Brother Brasil 17 (1367 edições)
  4.  Miss Universo 2017 (1289 edições)
  5.  A Fazenda: Nova Chance (1234 edições)
  6.  Campeonato Brasileiro de Futebol de 2017 - Série A (960 edições)
  7.  The Leftovers (932 edições)
  8.  Lista de episódios de Steven Universe (927 edições)
  9.  Fiódor Dostoiévski (881 edições)
  10.  Festival Eurovisão da Canção 2018 (847 edições)
  11.  Recordes da Copa do Mundo FIFA (789 edições)
  12.  Campeonato Paulista de Futebol de 2017 - Série A1 (773 edições)
  13.  Campeonato Brasileiro de Futebol de 2017 - Série B (768 edições)
  14.  Operação Lava Jato (751 edições)
  15.  Lista de episódios de Miraculous (750 edições)
  16.  A Força do Querer (749 edições)
  17.  Miss Brasil 2017 (730 edições)
  18.  Santuário de Fátima (676 edições)
  19.  Soy Luna (675 edições)
  20.  Loona (banda) (670 edições)

Os dados relativos a 2016 podem ser vistos em Televisão, política e Futebol ocupam lugares cimeiros nos artigos mais editados da Wikipédia Lusófona

Televisão, política e Futebol ocupam lugares cimeiros nos artigos mais editados da Wikipédia Lusófona

por Alchimista, em 27.12.17

Processo de impeachment de Dilma Rousseff

 O artigo Processo de impeachment de Dilma Rousseff foi o terceiro mais editado no ano de 2016, apenas suplantado por programas de televisão.

Diáriamente, os editores da Wikipédia fazem milhares de edições para manter e expandir os conteúdos da wikipédia, e 2016 não fugiu à regra. Este exército de voluntários criou cerca de 50 000 novos artigos no último ano, terminando o ano com cerca de 950 000 artigos no domínio principal. Aqui apresentamos a lista dos 50 artigos mais editados em 2016 na Wikipédia Lusófona, com artigos relacionados com televisão, desporto e política a destacarem-se.

 

impeachment de Dilma Rousseff intrometeu-se num top 10 dividido entre tv e futebol, com 5 artigos relativos ao desporto rei a dividirem essa classificativa com 4 sobre tv. 

 

  1. Lista de episódios de Steven Universe 2431 edições
  2. 2016 na televisão 1385 edições
  3. Processo de impeachment de Dilma Rousseff 1226 edições
  4. Campeonato Brasileiro de Futebol de 2016 - Série A 1163 edições
  5. Campeonato Europeu de Futebol de 2016 1106 edições
  6. Temporada do São Paulo Futebol Clube de 2016 1018 edições
  7. Êta Mundo Bom! 1010 edições
  8. Big Brother Brasil 16 968 edições
  9. Os Under-Undergrounds 966 edições
  10. Campeonato Brasileiro de Futebol de 2016 - Série D 952 edições
  11. Operação Lava Jato 944 edições
  12. Bangtan Boys 907 edições
  13. Lista de episódios de One Piece 906 edições
  14. Temporada do Club de Regatas Vasco da Gama de 2016 893 edições
  15. Copa do Brasil de Futebol de 2016 882 edições
  16. Lista de filmes de maior bilheteria 880 edições
  17. Paysandu Sport Club 859 edições
  18. Temporada de Fórmula 1 de 2016 858 edições
  19. A Quinta: O Desafio 783 edições
  20. Yo soy Franky 765 edições
  21. Haja Coração 761 edições
  22. Secret Story - Casa dos Segredos (6.ª edição) 761 edições
  23. Sandy 760 edições
  24. Copa União 749 edições
  25. Campeonato Paulista de Futebol de 2016 - Série A1 738 edições
  26. Campeonato Brasileiro de Futebol de 2016 - Série B 732 edições
  27. Velho Chico (telenovela) 729 edições
  28. Totalmente Demais (telenovela) 727 edições
  29. Santa Cruz Futebol Clube 724 edições
  30. Lista de líderes em home runs da Major League Baseball 715 edições
  31. Steven Universe 703 edições
  32. Campeonato Brasileiro de Futebol de 1987 692 edições
  33. Seleção Portuguesa de Futebol 691 edições
  34. Túlio Maravilha 688 edições
  35. Copa Libertadores da América de 2016 658 edições
  36. BLACKPINK (banda) 646 edições
  37. Brasil nos Jogos Olímpicos de Verão de 2016 646 edições
  38. Lista de jogadores de voleibol do Brasil 643 edições
  39. TWICE 637 edições
  40. Real Madrid Club de Fútbol 619 edições
  41. Seleção Brasileira de Futebol 616 edições
  42. Miss Universo 2016 613 edições
  43. Clássico das Multidões (Recife) 612 edições
  44. 2016 598 edições
  45. Spider-Man: Homecoming 596 edições
  46. Copa São Paulo de Futebol Júnior de 2016 596 edições
  47. Campeonato Brasileiro de Futebol de 2016 - Série C 593 edições
  48. Eleição municipal de São Paulo em 2016 584 edições
  49. Copa Libertadores da América de 2017 583 edições
  50. The Voice Portugal (4.ª edição) 577 edições

 

n.d.r. Este artigo era suposto ter sido publicado no inicio do ano de 2017, tendo ficado como rascunho, provavelmente aguardando a adição de mais informações. Uma vez que não faz muito sentido perder mais tempo, desde já é publicado sem revisão completa.

O regresso do Aleph Bot

por Alchimista, em 09.06.17

Bot Sketch Eric Benacek

 

Após uma paragem que durou anos, o Aleph Bot, o bot anti-vandalismo que faz companhia ao Salebot regressa ao activo.

 

 

 O Aleph_Bot começou a operar em 2010, tendo como base o código do AVBOT, um robô desenvolvido por Emijrp, um editor da Wikipédia em Espanhol, e era precisamente por lá que operava. Tratava-se de um código extremamente interessante, onde, em comparação com o do Salebot, outro robô anti-vandalismo que opera na pt.wp, trazia inovações como a diferenciação do tipo de edição - edição de testes, vandalismo ou branqueio de página, avisos específicos para o tipo de edição, assim como o reportar de utilizadores que apesar dos avisos reincidem nas edições. 

 

 Apesar de no início a adaptação à wikipédia Lusófona ter corrido a bom ritmo, a verdade é as especificidades da wikipédia em língua espanhola estavam embutidas no código, não separadas em variáveis, e se é verdade que houve uma tentativa de reescrever essas especificidades em variáveis localizáveis, com o passar do tempo o código do Aleph foi divergindo da versão original cada vez mais, até ficar complicada a sua manutenção, e deu-se a inevitável depreciação.

 A ideia de criar um novo código surgiu ainda o Aleph estava ao serviço, aproveitando as ideias do AVBOT mas num código mais flexível, e onde as variáveis de configuração estivessem o mais longe possível do código, permitindo mais flexibilidade, e ao mesmo tempo, que o código pude-se ser usado noutros projectos. A primeira tentativa deu-se com o python 2.7, assentando no Twisted, e indo buscar as mudanças recentes ao irc. Foram bons tempos, mas ao mesmo tempo momentos frustrantes, com imensos UnicodeDecodeError a saltitar por tudo o que era canto. Aliado a isto, noticias de uma possível depreciação do servido de mudanças recentes no irc deixaram-me relutante em continuar por um caminho que poderia estar condenado, então a certo ponto decidi aguardar, e o Aleph caiu na penumbra.

 

Uns tempos mais tarde, decidi voltar à carga, desta vez começando do zero, e já com o python 3. E que diferença tremenda. Por muitas discussões em redor da questão py3/py2, a verdade é que especialmente para trabalhar com artigos da wikipédia, o py3 é uma enorme lufada de ar fresco, tirando, é claro, o caso particular das predefinições do wikitexto, onde chego a ter pérolas como esta:  "{{{{Subst:{0}{3}.css|{1}|{2}|{3}}}}}".format(msg, ptitle, oldid, aleph_warns, bv)

 

 Se o irc já tinha recuperado o seu estatuto de intocável, o RCStream apresentava-se como uma excelente alternativa, até porque fornecia mais informação do que o irc, e de uma forma mais estruturada, então o código que estava a nascer foi adaptado para usar este novo sistema. Infelizmente teve um tempo de vida curto, porque pouco depois de começar a usa-lo, foi depreciado em favor do EventStreams. Neste caso, a modificação não foi muito custosa.

 

 Como é óbvio, a parte mais custosa de todo o processo é determinar se uma edição deve ou não ser revertida, e como o bot tenta fazer a distinção entre edições de teste ou vandalismos óbvios, as complicações aumentam. Na implementação actual, que espero vir a descrever mais pormenorizadamente no futuro, há uma contabilização das expressões problemáticas que ocorrem nas linhas adicionadas e removidas, e após o saldo entre as duas, contabiliza-se a pontuação. No final, todas as expressões encontradas dão origem a uma pré-classificação do género {'T': -12, 'G': 2, 'V': 0}. Com esta classificação, o passo seguinte é determinar a classificação da edição e o seu valor, entrando então um sistema de análise de pontuação. De uma forma simples, se a pontuação de vandalismo ou teste é inferior a um valor definido, a edição é classificada como tal, se for superior ao limite definido, é classificada como boa, e se ficar entre um intervalo definido como limbo, tenta usar o ORES ( um sistema de inteligência artificial), para verificar se a edição deve ser revertida.

 

 No caso de reversão, ocorre ainda a verificação se o penúltimo editor não é o bot, ou o Salebot, a fim de evitar guerras de edições, a reversão e a posterior notificação. Ao enviar a notificação, o bot verifica se existem mais avisos, e futuramente será implementado um sistema de notificação na wiki quando se verifica que há um utilizador já com inúmeros avisos. Na verdade, a partir do momento em que o código estabiliza e os bugs com o core code do bot desaparecem, a ideia é implementar um sistema de notificações na wiki de situações que convém análise humana, nomeadamente os tais editores com muitos avisos, ou edições do bot revertidas. Na prática, o Aleph é eternamente um projecto em curso.

 

 Paralelamente ao desenvolvimento do código em si, há um painel de controlo em desenvolvimento em https://tools.wmflabs.org/aleph/. Recorrendo ao OAuth, é possível utilizadores da wikipédia autenticarem-se, e no caso de serem administradores, conseguem parar o Aleph. Há alguns dados sobre o estado do script no grid engine, que por agora apenas são despejados sem grande tratamento, mas o plano é que a partir desse painel se tenha acesso às análises do bot, assim como controlar alguns dos seus parâmetros.

Presidenciais 2016 em Portugal na Wikipédia

por Alchimista, em 26.01.16

    Este último fim de semana decorreram as eleições Presidenciais em Portugal, e conforme a tradição, o que foi escrito ao longo do período de pré-campanha nas páginas da wiki tiveram relevo. Dai surgiu a curiosidade de tentar perceber o efeito eleições <-> wikipédia, e neste primeiro tópico começo a debruçar-me sobre as visualizações, aproveitando a nova API RESTBase que fornece os dados das visualizações dos artigos, de uma forma mais aperfeiçoada em relação à ferramenta que aparece no histórico das páginas, o http://stats.grok.se/.

 

    Os primeiros dados são interessantes, começando a análise a 10 de Outubro do ano passado temos o gráfico seguinte:

 Visualização das visitas às páginas dos candidatos à Presidência da República durante o período eleitoral e pré-eleitoral.

Por Alchimista (Obra do próprio) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0 )], undefined. Origem: https://commons.wikimedia.org/wiki/File:P2016_2m.png

 Nos primeiros dias ainda se apanha um pouco da entorpia causada pelas eleições,com as visualizações a estabilizarem até meio de Dezembro, e a partir dessa altura temos outra vizualização mais pormenorizada na figura seguinte.

 

     Visualização das visitas às páginas dos candidatos à Presidência da República durante o período eleitoral.

Por Alchimista (Obra do próprio) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0 )],  undefined. Origem: https://commons.wikimedia.org/wiki/File:P2016_2m.png

    O primeiro grande pico de visualizações ocorreu pelo dia 17, curiosamente no dia em que Marisa Matias formaliza a candidatura há o referido pico, onde Sampaio da Nóvoa tem grande destaque. Na sema seguinte, logo nos dias posteriores ao Natal Marisa Matias e Sampaio da Nóvoa têm mais um pico de visualizações, com Marisa Matias a destacar-se com o dobro das visualizações, que vão acalmando com o aproximar da passagem de ano. Sobressai igualmente que no periodo de campanha eleitoral, a visualização dos candidatos aumentou significativamente, com as visualizações de Sampaio da Nóvoa em grande destaque.

    Curiosamente o artigo sobre Marcelo Rebelo de Sousa, que acabou por vencer as presidenciais, apresentou valores de vizualizações muito discretas comparando com os outros candidatos mais mediáticos, e o artigo de Maria de Belém teve valores de visualizações discretos. Esta disparidade pode dever-se à maior ou menor penetração nas faixas mais jovens, onde a internet tem um papel mais preponderante, mas é algo difícil de comprovar.

    Edgar Silva formalizou a sua candidatura no dia 7 de dezembro de 2015, e a sua página foi criada somente 3 dias depois. Até ao dia 10 de Dezembro de 2015, a página Edgar Silva era um redirecionamento para  Edgar Bruno Silva, "um futebolista brasileiro que actua como atacante, atualmente defende o Al Shabab Al Arabi Club."

 

[Notas técnicas: Jorge Sequeira e Cândido Ferreira, ambos candidatos, não surgem na análise por até à data não terem artigo da wikipédia.

    A análise aqui feita é uma primeira abordagem e baseia-se em dados publicos disponibilizados pela Fundação Wikimédia relativa aos artigos. ]

Tutorial de pywikipediabot - IV

por Alchimista, em 18.01.13

No wikivoyage.org houve necessidade de mover uma enorme quantidade de páginas que estavam no formato "JAMGuides:" para "Wikivoyage:", não deixando para trás redirecionamentos, algo que se revelou extremamente simples. O pormenor foi a flag temporária de administrador que o bot recebeu, para poder não deixar redirecionamentos, pois isso é basicamente uma eliminação automática dos mesmos. Como o projecto tem ainda poucas páginas, e era uma operação básica, a listagem das páginas foi obtida pela lista de páginas totais no domínio principal, caso contrário teria de ser usada uma outra opção, e, além do mais, a opção mais lógica, que é a busca por páginas começadas por uma determinada string não estava a funcionar correctamente, portanto seguiu-se esta via. O script em sí é básico, e creio, facilmente entendível:

  

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import wikipedia as pywikibot
import pagegenerators


def main():

    # Definir o site, e obter a listagem de todas as páginas do domínio principal.
    site = pywikibot.getSite("pt","wikivoyage")
    gen = pagegenerators.AllpagesPageGenerator(site=site,includeredirects=False)
    for i in gen:

        # Aqui filtramos os títulos que começam por "JAMGuides", separando primeiro

        # o título tendo por base o ":", e, caso tenha o ":", verificar se antes da ocorrência

        # o texto é "JAMGuides".
        if i.title().split(":")[0] == u'JAMGuides':

            # Criação do novo título, a segunda parte é igual, logo compõem-se o novo título fácilmente
            ntitle = u"Wikivoyage:%s" % i.title().split(":")[1]
            print u"old title: ", i.title(), u" |--->  new title: ", ntitle, u" |--> afluentes: "
            try:

                # E por fim move-se a página para o novo título.
                i.move(ntitle, leaveRedirect=False, reason=u"[[Wikivoyage:BOT|BOT]]: A mover páginas para título correcto.")
            except:
                print u"error"
        else:
            pass

if __name__ == "__main__":
    try:
        main()
    finally:
        pywikibot.stopme() 

https://github.com/alchimista/pywikipedia-tutorial

 

 


Tutorial de pywikipediabot - III

por Alchimista, em 20.09.12

Neste tópico abordaremos outras funcionalidades interessantes do pywikipediabot, nomeadamente a obtenção no namespace de uma página, quer no formato numérico, quer no nome do namespace. Veremos igualmente como obter o título da página principal, ou seja, por exemplo no caso wikipedia:Ajuda/edição, obter wikipedia:Ajuda, ou então somente Ajuda. Há outras formas de filtrar os artigos, por exemplo, se apenas pretendesse-mos os artigos do domínio wikipéda da categoria !Robótica, o módulo pagegenerators tem opções para isso, mas para já, iremos aumentando a complexidade aos poucos.

 

Informação sobre os namespaces pode ser encontrada em Mediawiki.org:Manual:Namespaces, ou Mediawiki.org:Namespaces. Nos projectos locais é frequente usarem para além dos namespaces padrão, formas personalisadas, e, na wikipédia Lusófona por exemplo, a documentação pode ser encontrada em Wikipédia:Domínio.

 

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#	   
#	   (C) 2012 Alchimista <alchimistawp@gmail.com>
#		 
#		Distributed under the terms of the GNU GPL license.

import sys, os

import wikipedia
import catlib
import pagegenerators

def main():
	site = wikipedia.Site("pt", "wikipedia")
	cat = catlib.Category(site, u"!Robótica")
	''' Como explicado anteriormente, temos definido o site e a categoria
		podendo então passar-mos a obter a listagem das páginas,
		onde desta vez usaremos o pagegenerators. Uma opção mais rápida será
		usar igualmente o preloadingGen, bastando para isso
		fazer algo como 
		pages = pagegenerators.PreloadingGenerator(pagegenerators.CategorizedPageGenerator(cat))
		Isto faz com que as páginas sejam carregadas no início, ao contrário
		do script actual, que carrega à medida que forem necessárias. 
	'''
	pages = pagegenerators.CategorizedPageGenerator(cat)
	for page in pages:
		'''Agora que temos a iteração vamos primeiro obter o título
		'''
		print page.title()
		
		''' Com o page.namespace() obtemos o namespace da página
			embora no formato canonico, ou seja, número. Para obter
			o nome do namespace, fazemos o site.namespace().
			Para fazer tudo junto, basta substituir as duas linhas por
			namespace = site.namespace(page.namespace())
		'''
		
		pageNamespaceNumber = page.namespace()
		namespace = site.namespace(pageNamespaceNumber)
		if namespace == u"Ajuda":
			''' Aqui filtramos as páginas que pertencem ao namespace Ajuda
				e obteremos o nome do namespace, assim como as predefinições
				contidas nas páginas. '''
			print len(page.get())
			print u"namespace: ", site.namespace(page.namespace())
			print u"templates: ", page.templates()
		elif namespace == u"Wikipédia":
			''' Neste bloco, apenas os artigos do namespace wikipédia são filtrados,
				e obteremos o namespage e o título do artigo, sem namespace ou subpáginas
				(resumidamente, o título do artigo principal)
			'''
			print u"namespace: ", site.namespace(page.namespace())
			print u"Página principal (título sem subpágina): ", page.sectionFreeTitle()
			print u"Página principal sem título nem namespace: ", page.title(withNamespace=False)
			
			
if __name__ == "__main__":
	try:
		main()
	finally:
		wikipedia.stopme()	

https://github.com/alchimista/pywikipedia-tutorial 

Tutorial de pywikipediabot - II

por Alchimista, em 19.09.12

 

No primeiro post vimos como de uma forma básica se pode obter o conteúdo de uma página. Infelizmente, na sua utilização tradicional, os bots são utilizados para edições massiças, ou então para obter informação de um grande número de páginas pelo que o script anterior não nos seve, então vamos interagir com categorias. Há um pormenor importante a realçar: caso se trate de obter informação de um grande número de páginas, é extremamente aconselhado usar dumps, que podem ser obtidos em http://dumps.wikimedia.org/,por exemplo. Mais informação pode ser obtida em Meta:Data dumps.

 

No script seguinte, contaremos os artigos de uma categoria. Obteremos o título dos artigos, e contaremos os elementos. Relativamente ao script do primeiro post, o código ficará dentro de uma definição ( def main()) para tirar-mos vantagem do wikipedia.stopme(), que basicamente informa o servidor de que o script fez o seu trabalho, interrompendo a ligação.

 

 

 #!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#	   
#	   (C) 2012 Alchimista <alchimistawp@gmail.com>
#		 
#		Distributed under the terms of the GNU GPL license.

import sys, os

import wikipedia
import catlib
import pagegenerators

def main():
	''' Esta é a def onde o nosso script vai estar '''
	
	site = wikipedia.Site("pt", "wikipedia") # definimos que o site é a pt.wp
	
	'''De seguida, definimos a categoria Ambiente
	 e obtemos a listagem dos títulos dos artigos.
	 Na demonstração o código está por extenso para
	 mais fácil percepção, na prática, bastaria
	 pages = catlib.Category(site, u"Ambiente").articles()
	 para se obter a listagem	  
	'''
	cat = catlib.Category(site, u"Ambiente") # Aqui definimos a categoria Ambiente. 
	catList = cat.articlesList()


	'''Agora que temos uma listagem,
	 e antes de contar os elementos,
	 vamos ver os títulos que constam na catList.
	 
	 Esta abordagem serve bem para ilustrar este exemplo,
	 caso fosse para interagir directamente com os artigos,
	 como veremos noutro post, há abordagens mais eficientes.
 
	 O primeiro print, ou seja, no caso o objecto page,
	 é um objecto python, enquanto que o segundo print,
	 o do page.title(), já tem o formato de unicode.
	'''
	
	for page in catList:
		print u"página (objecto):", page
		print u"Título da página: ", page.title() # mostra o título do artigo


	''' Por fim, fazemos a contagem dos artigos	'''
	
	print u"\n Nº de artigos na categoria: ", len(catList)
	
if __name__ == "__main__":
	try:
		main()
	finally:
		wikipedia.stopme()	

https://github.com/alchimista/pywikipedia-tutorial

Tutorial de pywikipediabot - I

por Alchimista, em 19.09.12

Não há muitos developers de bots na pt.wp, na verdade, contam-se pelos dedos das mãos aqueles que criam regularmente scripts próprios. A verdade é que nunca houve um grupo activo dedicado ao pywp, contrariamente por exemplo, ao que acontece com os gadjects, ou scripts em javascript.

 

Com isso em mente, há há agum tempo que planeio criar um tutorial para que os primeiros passos sejam mais fáceis, pois a verdade é que não há propriamente um ponto de partida que contenha informação suficientemente desenvolvida para que possa ser um verdadeiro manual introdutório. Enquanto não arranjo tempo e vontade para escrever um manual explicativo e bem estruturado, espero ir colocando aqui informações avulsas que possam ajudar, e, quem sabe, no final compilar tudo num tutorial final, na wikipédia.

 

Pois bem, o primeiro exemplo de um script pywp terá como finalidade colocar um texto numa página da wikipédia. Estes primeiros passos vão ser explicados com mais detalhe, porque a verdade é que na esmagadora maioria dos meus scripts, o pywp ocupa apenas uma pequena parte, e é sensivelmente sempre a mesma, ou seja, para as tarefas do quotidiano, conhecer meia dúzia de classes e definições é quanto baste para criar scripts úteis no dia a dia wikipédico.

 

No script seguinte, vamos obter o texto de Wikipédia:Página de testes/4  e substitui-lo por "Olá Mundo! Isto é um teste de edição :D". Presume-se que tenham conhecimentos básicos de python, caso haja dificuldade em compreender algo, a secção de comentários está á disposição.

 

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#       
#       (C) 2012 Alchimista <alchimistawp@gmail.com>
#         
#        Distributed under the terms of the GNU GPL license.

import sys, os

try:
	sys.path.append(os.environ['HOME'] + '/wp/bots/pywikipedia')
except:
	pass

''' 
 Primeiro importamos o módulo wikipedia, o qual nos trará as soluções mais básicas,
 e ao mesmo tempo grande parte das que normalmente são necessárias para interagir com
 o mediawiki. '''

import wikipedia

''' O primeiro passo antes de interagir com a API do mediawiki, é definir
qual o projecto/site com que estamos a lidar, para isso usamos:
'''
site= wikipedia.Site("pt", "wikipedia") # definimos que o site é a pt.wp

''' Agora, vamos estabelecer as definições de uma página, neste caso,
 a página de testes/4: '''

wpage = wikipedia.Page(site, u"wikipédia:Página de testes/4")

''' Agora que definimos a página, vamos obter o texto da página: '''
wpagetext = wpage.get()

print wpagetext # print ao conteúdo da página

''' Tendo o conteúdo, e ignorando-o por completo, vamos então substituir
 por um novo texto.
'''
newtext = u"Olá Mundo! Isto é um teste de edição :D" # definimos o novo texto

wikipedia.showDiff(wpagetext, newtext) # mostra o diferencial da edição sem salvar

Aleth Bot no top 10 de bots com mais edições da Wikipédia Lusófona

por Alchimista, em 02.06.12

Recentemente constactei uma agradável surpresa, a Aleth_Bot encontra-se já listada no top 10 dos bots com mais edições de sempre da Wikipédia Lusófona, e se tiver-mos em conta bots operados por operadores locais, está em 4º Lugar.

 

A lista é liderada pelo Rei-Bot, que apesar de não editar desde Setembro de 2010, conta com 1137298 edições, e é operado pelo Rei Artur. Tanto o bot como o operador sã figuras mais do que históricas, autênticas lendas vivas.

 

No que toca à Aleth, são 356797 edições repartidas por várias tarefas, todas elas efectuadas por scripts desenvolvidos específicamente para a pt.wp, e que rodam de forma totalmente autónoma no Toolserver, aproveitando os recurosos disponibilizados, especialmente os de Job scheduling. Para se ter noção da relativa complexidade de manutenção, para além da manutenção dos scripts, são dois crontabs, um para fazer correr os scripts de curta duração como o envio de mensagens ou arquivamento de páginas de discução, que corre num servidor normal, e outro crontab para controlar os scripts que irão correr por largos períodos, dias e afins.

 

Para estes scripts que necessitam correr por longos periodos, há um server próprio, que irá escolher qual o servidor com recursos disponíveis que irá acolher o script. Além disso, há sempre a necessidade de manter o consumo de recursos em níveis aceitáveis, manter o consumo de memória baixo, ou os mesmos irão parar ou apresentar erros, ou a memória física disponível.

Posts recentes

Arquivo

  1. 2017
  2. J
  3. F
  4. M
  5. A
  6. M
  7. J
  8. J
  9. A
  10. S
  11. O
  12. N
  13. D
  14. 2016
  15. J
  16. F
  17. M
  18. A
  19. M
  20. J
  21. J
  22. A
  23. S
  24. O
  25. N
  26. D
  27. 2015
  28. J
  29. F
  30. M
  31. A
  32. M
  33. J
  34. J
  35. A
  36. S
  37. O
  38. N
  39. D
  40. 2014
  41. J
  42. F
  43. M
  44. A
  45. M
  46. J
  47. J
  48. A
  49. S
  50. O
  51. N
  52. D
  53. 2013
  54. J
  55. F
  56. M
  57. A
  58. M
  59. J
  60. J
  61. A
  62. S
  63. O
  64. N
  65. D
  66. 2012
  67. J
  68. F
  69. M
  70. A
  71. M
  72. J
  73. J
  74. A
  75. S
  76. O
  77. N
  78. D
  79. 2011
  80. J
  81. F
  82. M
  83. A
  84. M
  85. J
  86. J
  87. A
  88. S
  89. O
  90. N
  91. D

Tags

mais tags