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 - 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

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