Je crée un site Wiki en utilisant MediaWiki, et j'ai cherché une API pour obtenir des informations mises à jour, etc. avec Python, mais il existe plusieurs articles Qiita et ** MediaWiki version japonaise avec traduction subtile **, anglais Comme il n'y avait que des informations sur MediaWiki, j'ai décidé d'écrire un article pour ceux qui envisagent d'utiliser l'API à l'avenir. Cette API est essentiellement ** utilisable pour les sites MediaWiki autres que Wikipedia **, elle est donc assez polyvalente. Veuillez noter que l'explication détaillée peut être erronée et qu'elle est un peu difficile à lire car c'est le premier message de Qiita ...
Ce sont les principaux paramètres utilisés pour acquérir le contenu de cet article. En ce qui concerne les paramètres, Cet article Qiita: obtenir des informations sur Wikipédia à l'aide de l'API MediaWiki présente en détail, il y a donc d'autres choses en plus d'obtenir le contenu de l'article. Si c'est le cas, je pense que vous devriez vous y référer. Remarque: vous pouvez cliquer dessus à partir du lien, mais j'utilise des `` requêtes '' pour une meilleure lisibilité.
Paramètres | La description | valeur | exemple |
---|---|---|---|
format | Format de sortie | json,xml... | "format":"json"→ Sortie avec json |
action | opération | query,edit... | "action":"query"→取得opérationをする |
prop | Obtenir les composants de l'article | revisions,links,images... | "prop":"revisions"→ Obtenir la révision |
title | Le titre de l'article | Le titre de l'article | "titles":"Chat"→「Chat」という記事を取得する |
rvprop | Éléments à obtenir | content... | "rvprop":"content"→ Obtenez le texte de l'article |
list | Obtenir la liste d'articles | categorymembers,search... | "list":"categorymembers"→ Obtenez des membres de la catégorie |
cmtitle | Titre de la catégorie | Nom de catégorie | "cmtitle":"Nuko"→「Nuko」カテゴリを取得する |
cmlimit | Nombre maximum d'acquisitions | 1~500 | "cmlimit":"100"→ Obtenez jusqu'à 100 |
Obtenez le nom de l'article avec "Catégorie: Règlements scolaires de la préfecture de Chiba" sur le site kousokuwiki.org créé par MediaWiki.
coding: UTF-8
from urllib.request import Request, urlopen
from urllib.parse import urlencode
from urllib.error import URLError, HTTPError
import json
import requests
S = requests.Session()
# Déclarez l'URL. Dans le cas de wikipedia, ce sera "https://jp.wikipedia.org/w/api.php".
URL = "https://kousokuwiki.org/w/api.php"
# Paramètres des paramètres.
PARAMS = {
"action": "query",
"cmtitle": "Catégorie: Règlement scolaire dans la préfecture de Chiba",
"cmlimit": "500",
"list": "categorymembers",
"format": "json"
}
# Obtenez des informations avec la fonction get
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
# Extraire les données requises de json
PAGES = DATA['query']['categorymembers']
# Extraire uniquement les informations de titre et les stocker dans la liste
Return_List=[]
for page in PAGES:
Return_List.append(page['title'])
print(Return_List)
[Règlement du lycée de la préfecture de Chiba Chiba Higashi, règlement du lycée de la préfecture de Chiba Inba Akira Makoto, règlement du lycée de la préfecture de Chiba de Kokubun, règlement du lycée international de la préfecture de Chiba de Narita, règlement du lycée international de la préfecture de Chiba Matsudo, lycée de la préfecture de Chiba Kashiwanoha Règlement de l'école ... (Omis)]
Récupérez le contenu de l'article "Règlement scolaire du lycée préfectoral de Chiba Kashiwanoha" sur le site kousokuwiki.org créé par MediaWiki.
coding: UTF-8
from urllib.request import Request, urlopen
from urllib.parse import urlencode
from urllib.error import URLError, HTTPError
import json
import requests
S = requests.Session()
# Déclarez l'URL. Dans le cas de wikipedia, ce sera "https://jp.wikipedia.org/w/api.php".
URL = "https://kousokuwiki.org/w/api.php"
# Paramètres des paramètres.
PARAMS = {
"action": "query",
"prop": "revisions",
"title": "Règlement scolaire du lycée préfectoral de Chiba Kashiwanoha",
"rvprop": "content",
"format": "json"
}
# Obtenez des informations avec la fonction get
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
# Extraire les données requises de json
CONTENT = DATA['query']['pages']
print(CONTENT)
{'61': {'pageid': 61, 'ns': 0, 'title': 'Règlement de l'école du lycée préfectoral de Chiba Kashiwanoha', 'revisions': [{'contentformat': 'text/x-wiki', 'contentmodel': 'wikitext', '*': 'Lycée préfectoral de Chiba Kashiwanoha(Abréviation:Lycée Kashiwanoha)Est[[Préfecture de Chiba]]Existe en[[École publique|Publique]]de[[école secondaire]]<br>\n[[Classification de notation]] 、[[Avertissement]]を確認de上ご利用ください。\n\n=Règles de base=\n\n{| class="wikitable"\n!article\n!Règles de l'école\n!Situation actuelle\n!Remarques\n|-\n|Utiliser un smartphone\n|Possible\n|Possible\n|PC est également possible\n|-\n|Utiliser SNS\n|Possible\n|Possible\n| 心得de規定Estあり\n|-\n|travail à temps partiel\n|Limité\n|Possible\n| 要許可願Situation actuelleとして成績が悪くなければ可能。シフトEst基本午後8時まで、午後10時までに帰宅することが条件(A été écrit sur le papier).. Mais peu importe si vous ne l'écrivez pas sur papier(店側が学校に確認de連絡を取らない場合)、時間だって虚偽de申告してもバレなかった。\n|-\n|Permis de conduire\n|Limité\n|Limité\n|Il est possible de demander la permission seulement après avoir décidé du cours\n|-\n|Règles de l'école改正\n|Non spécifié\n|impossible\n|Le personnel a décidé\n|}\n\n=Règlements sur les cheveux et les vêtements=\n{| class="wikitable"\n!article\n!Règles de l'école\n!Situation actuelle\n!Remarques\n|-\n|Uniforme pour hommes\n| colspan="3" |veste\n|-\n|Uniforme femme\n| colspan="3" |veste+スカート、スラックス可スラックス時deみネクタイ可\n|-\n|Chaussures(Hors campus)\n| colspan="3" |noir,茶de革靴又Est運動靴\n|-\n|Chaussures(École)\n| colspan="3" |指定de学年色de上履き\n|-\n|Chaussettes homme\n| colspan="3" |紺又Est白deソックス\n|-\n|Chaussettes femme\n|colspan="3" |noir又Est紺deハイソックス\n|-\n|retour\n| colspan="3" |華美でない機能的な高校生らしいもde\n|-\n|cheveux\n| colspan="3" |Décoloration Perma teinture cheveux bouclés etc. interdite\n|-\n|Manteaux\n|Possible\n|Possible\n|華美でないもde 校舎内でEst脱ぐ\n|-\n|Silencieux\n|Possible\n|Possible\n| 華美でないもde 校舎内でEst脱ぐ\n|-\n|Chandails\n|Possible\n|Possible\n| 学校指定deもde\n|-\n|maquillage\n|impossible\n|Échapper\n|maquillage マニキュア ピアス カラコン 装飾品Est一切禁止\n|}\n\n=そde他規定=\n\n=Extrait d'article=\n[[Category:Préfecture de Chibade校則]]'}]}}
Découpez uniquement les informations souhaitées si nécessaire.
J'ai expliqué l'API MediaWiki, qui manque d'informations japonaises, avec des exemples. Nous pouvons ajouter plus d'explications de paramètres et d'exemples d'implémentation à l'avenir! Nous espérons que vous trouvez cela utile.
Recommended Posts