Saltar para: Post [1], Pesquisa e Arquivos [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.

"Por Jnvalves (Obra do próprio) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], undefined" href="https://commons.wikimedia.org/wiki/File%3AO_Fanal%2C_Ilha_da_Madeira%2C_Portugal.jpg">

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

 

 


Mais sobre mim

foto do autor

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