Page 13 sur 23
L'API Wikipedia
Essayons avec la bibliothèque wikipedia de Python, faîte expressément pour ça ! Dans la console Python de l'invite de commande Windows :
import wikipedia wikipedia.set_lang("fr") summary_fr = wikipedia.summary("Aiguille Dibona", sentences=10) my_page = wikipedia.page("Aiguille Dibona") print(summary_fr) print (my_page.url)
Héhé, c'est bien plus simple hein ?
Vérification des résultats
OK, ajoutons également une comparaison in
afin de vérifier la pertinence du résultat. En effet nous cherchons ici à partir de simples mots-clés dans le moteur de recherche de Wikipédia, et les résulats peuvent parfois être surprenants.
import wikipedia wikipedia.set_lang("fr") myWikiContent = wikipedia.summary("L'Ourson", sentences=3) # Verifier la pertinence du resultat if str('Massif des Écrins').lower() in str(myWikiContent).lower(): pass else: myWikiContent = 'Oooouuuuppssss !!!' print(myWikiContent)
Ceci n'est qu'un court exemple, on peut faire mieux, comme dans cet exemple complet.
Condition
Puis nous mettons le texte dans une condition if else
avant d'afficher le texte. Peut-être pas nécessaire mais évite d'encombrer la carte avec des blocs vides.
Le contenu du texte est maintenant une concaténation de nos nouvelles variables :
... #Texte if myWikiContent is None: None else: TextCustom = QgsLayoutItemLabel(layout) TextCustom.setText(myWikiContent+"\n\n"+myWikiLink) TextCustom.setFont(QFont("Verdana", 11)) layout.addLayoutItem(TextCustom) TextCustom.attemptMove(QgsLayoutPoint(230, 100, QgsUnitTypes.LayoutMillimeters)) TextCustom.attemptResize(QgsLayoutSize(60, 100, QgsUnitTypes.LayoutMillimeters)) ...
Astuce
Un exemple complet d'usage de l'API Wikipedia ici !