Bonjour, je code un programme qui nous montre le chemin entre 2 pages Wikipédia uniquement avec les liens hypertextes (le principe du jeu wikipedia).
J'utilise l'import "wikipedia", voici la documentation: https://wikipedia.readthedocs.io/en/.../code.html#api
J'ai donc commencé mon code, pour l'instant il détecte que si le lien cherché est dans la page de départ. (si vous voulez essayer, utilisez la page de départ "Philippe Bernier" (trouvée au hasard) parce qu'il n'y a que 24 liens à tester)
Le code marche bien lorsque je cherche par exemple: "Philippe Bernier vers Toulouse".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 import wikipedia as wiki ## # -*- coding: utf-8 -*- wiki.set_lang("fr") ## def main(): chemin =[] entree = input("page de départ: ") sortie = input("page d'arrivée: ") chemin = [entree] deg1 = construction1(entree,sortie) deg2 = 0 deg3 = 0 if deg1 == 1: chemin.append(sortie) if deg1 == 1 or deg2 == 1 or deg2 == 1: taille = len(chemin) for c in range(taille): print(str(chemin[c])) else: print("lien non-trouvé") def construction1(entree,sortie): fichier = open("degre1.txt", "w") taille = len(wiki.page(entree).links) for c in range(taille): lien=str(str(wiki.page(entree).links[c]).encode(encoding='utf-8')) # enregistre l'élement c de la liste links en string fichier.write(lien +"\n") #besoin pour la suite du programme (non ecrit) if lien == ( "b\'"+sortie+"\'") or lien == ( 'b\"'+sortie+'\"'): # trouve si la page est la sortie return 1 print(str(c+1)+"/"+str(taille)+" "+"degre1"+" "+lien) # montre l'avancement dans la console return 0 main()
Mon problème est que python n'écrit pas les accents de la page "é" mais "\xc3\" alors que j'ai l'encodage Utf-8 le problème étant que quand je demande de trouver une page avec accent il la trouve pas:
console:
page de départ: Moraleja del Vino
page d'arrivée: Héraldique
1/20 degre1 b'2019'
2/20 degre1 b'Aire (g\xc3\xa9om\xc3\xa9trie)'
3/20 degre1 b'Altitude'
4/20 degre1 b'Castille-et-Le\xc3\xb3n'
5/20 degre1 b'Code postal'
6/20 degre1 b'Communaut\xc3\xa9 autonome'
7/20 degre1 b"Communaut\xc3\xa9s autonomes d'Espagne"
8/20 degre1 b'Commune (Espagne)'
9/20 degre1 b'Coordonn\xc3\xa9es g\xc3\xa9ographiques'
10/20 degre1 b'Densit\xc3\xa9 de population'
11/20 degre1 b'District judiciaire de Zamora'
12/20 degre1 b'District judiciaire espagnol'
13/20 degre1 b'Espagne'
14/20 degre1 b'H\xc3\xa9raldique'
15/20 degre1 b'Liste des communes de la province de Zamora'
16/20 degre1 b'Liste des pays du monde'
17/20 degre1 b'Maire'
18/20 degre1 b'Province de Zamora'
19/20 degre1 b"Provinces d'Espagne"
20/20 degre1 b'Recensement de la population'
lien non-trouvé
Il ne trouve pas car "Héraldique" est "H\xc3\xa9raldique"
J'aimerais savoir comment faire pour qu'il détecte TOUT les caractères spéciaux.
Merci d'avance pour vos réponses
Partager