Ich habe versucht zu erklären, wie der Artikelinhalt mit der MediaWiki-API auf leicht verständliche Weise anhand von Beispielen abgerufen werden kann (Python 3).

Hintergrund

Ich erstelle eine Wiki-Site mit MediaWiki und habe nach einer API gesucht, um aktualisierte Informationen usw. mit Python zu erhalten, aber es gibt mehrere Qiita-Artikel und ** japanische MediaWiki-Version mit subtiler Übersetzung **, Englisch Da es nur Informationen zu MediaWiki gab, habe ich beschlossen, einen Artikel für diejenigen zu schreiben, die darüber nachdenken, API in Zukunft zu verwenden. Diese API ist grundsätzlich ** für andere MediaWiki-Websites als Wikipedia verwendbar ** und daher sehr vielseitig. Bitte beachten Sie, dass die ausführliche Erklärung möglicherweise falsch ist und etwas schwer zu lesen ist, da es sich um Qiitas ersten Beitrag handelt ...

Zu verwendende Parameter

Dies sind die Hauptparameter, mit denen der Inhalt dieses Artikels erfasst wird. In Bezug auf die Parameter wird Dieser Qiita-Artikel: Wikipedia-Informationen mithilfe der MediaWiki-API abrufen ausführlich vorgestellt. Neben dem Abrufen des Artikelinhalts gibt es also noch andere Dinge. Wenn Sie dies tun, sollten Sie sich darauf beziehen. Hinweis: Ich kann über den Link darauf zugreifen, verwende jedoch "Anfragen", um die Lesbarkeit zu verbessern.

Parameter Erläuterung Wert Beispiel
format Ausgabeformat json,xml... "format":"json"→ Ausgabe mit json
action Operation query,edit... "action":"query"→取得Operationをする
prop Artikelkomponenten abrufen revisions,links,images... "prop":"revisions"→ Revision abrufen
title Artikelüberschrift Artikelüberschrift "titles":"Katze"→「Katze」という記事を取得する
rvprop Elemente zu bekommen content... "rvprop":"content"→ Artikeltext abrufen
list Artikelliste abrufen categorymembers,search... "list":"categorymembers"→ Kategoriemitglieder abrufen
cmtitle Kategorietitel Kategoriename "cmtitle":"Nuko"→「Nuko」カテゴリを取得する
cmlimit Maximale Anzahl von Akquisitionen 1~500 "cmlimit":"100"→ Holen Sie sich bis zu 100

Implementierungsbeispiel 1

Was willst du tun

Den Artikelnamen erhalten Sie mit "Kategorie: Schulordnung der Präfektur Chiba" auf der von MediaWiki erstellten Website kousokuwiki.org.

Code

 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()
# Deklarieren Sie die URL. Im Fall von Wikipedia ist dies "https://jp.wikipedia.org/w/api.php".
URL = "https://kousokuwiki.org/w/api.php"

# Parametereinstellungen.
PARAMS = {
    "action": "query",
 "cmtitle": "Kategorie: Schulordnung in der Präfektur Chiba",
    "cmlimit": "500",
    "list": "categorymembers",
    "format": "json"
}

# Informationen mit get-Funktion abrufen
R = S.get(url=URL, params=PARAMS)
DATA = R.json()

# Extrahieren der erforderlichen Daten aus json
PAGES = DATA['query']['categorymembers']

# Extrahieren Sie nur Titelinformationen und speichern Sie sie in der Liste
Return_List=[]
for page in PAGES:
    Return_List.append(page['title'])
print(Return_List)

Ausgabe

 [Chiba Präfektur Chiba Higashi High School Bestimmungen, Chiba Präfektur Inba Akira Makoto High School Bestimmungen, Chiba Präfektur Kokubun High School Bestimmungen, Chiba Präfektur Narita International High School Bestimmungen, Chiba Präfektur Matsudo International High School Bestimmungen, Chiba Prefectural Kashiwanoha High School Bestimmungen Schulregeln ... (weggelassen)]

Implementierungsbeispiel 2

Was willst du tun

Den Inhalt des Artikels "Schulordnung der Chiba Prefectural Kashiwanoha High School" finden Sie auf der von MediaWiki erstellten Website kousokuwiki.org.

Code

 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()
# Deklarieren Sie die URL. Im Fall von Wikipedia ist dies "https://jp.wikipedia.org/w/api.php".
URL = "https://kousokuwiki.org/w/api.php"

# Parametereinstellungen.
PARAMS = {
    "action": "query",
    "prop": "revisions",
 "Titel": "Schulordnung der Chiba Prefectural Kashiwanoha High School",
    "rvprop": "content",
    "format": "json"
}

# Informationen mit get-Funktion abrufen
R = S.get(url=URL, params=PARAMS)
DATA = R.json()

# Extrahieren der erforderlichen Daten aus json
CONTENT = DATA['query']['pages']
    
print(CONTENT)

Ausgabe

 {'61': {'pageid': 61, 'ns': 0, 'title': 'Schulregeln der Chiba Prefectural Kashiwanoha High School', 'revisions': [{'contentformat': 'text/x-wiki', 'contentmodel': 'wikitext', '*': 'Chiba Prefectural Kashiwanoha High School(Abkürzung:Kashiwanoha High School)Ist[[Präfektur Chiba]]Existiert in[[Öffentliche Schule|Öffentlichkeit]]von[[weiterführende Schule]]<br>\n[[Notationsklassifikation]] 、[[Haftungsausschluss]]を確認von上ご利用ください。\n\n=Grundregeln=\n\n{| class="wikitable"\n!Artikel\n!Schulregeln\n!Die aktuelle Situation\n!Bemerkungen\n|-\n|Verwenden Sie das Smartphone\n|Möglich\n|Möglich\n|PC ist auch möglich\n|-\n|Verwenden Sie SNS\n|Möglich\n|Möglich\n| 心得von規定Istあり\n|-\n|Teilzeitstelle\n|Begrenzt\n|Möglich\n| 要許可願Die aktuelle Situationとして成績が悪くなければ可能。シフトIst基本午後8時まで、午後10時までに帰宅することが条件(Wurde auf das Papier geschrieben).. Aber es spielt keine Rolle, wenn Sie es nicht auf Papier schreiben(店側が学校に確認von連絡を取らない場合)、時間だって虚偽von申告してもバレなかった。\n|-\n|Führerschein\n|Begrenzt\n|Begrenzt\n|Eine Erlaubnis kann erst nach Entscheidung des Kurses beantragt werden\n|-\n|Schulregeln改正\n|Nicht spezifiziert\n|unmöglich\n|Mitarbeiter entschieden\n|}\n\n=Haar- und Bekleidungsvorschriften=\n{| class="wikitable"\n!Artikel\n!Schulregeln\n!Die aktuelle Situation\n!Bemerkungen\n|-\n|Herrenuniform\n| colspan="3" |Blazer\n|-\n|Frauenuniform\n| colspan="3" |Blazer+スカート、スラックス可スラックス時vonみネクタイ可\n|-\n|Schuhe(Außerhalb des Campus)\n| colspan="3" |schwarz,茶von革靴又Ist運動靴\n|-\n|Schuhe(Schule)\n| colspan="3" |指定von学年色von上履き\n|-\n|Herrensocken\n| colspan="3" |紺又Ist白vonソックス\n|-\n|Frauensocken\n|colspan="3" |schwarz又Ist紺vonハイソックス\n|-\n|zurück\n| colspan="3" |華美でない機能的な高校生らしいもvon\n|-\n|Haar\n| colspan="3" |Perma Entfärbung Färben Lockenhaar etc. verboten\n|-\n|Mäntel\n|Möglich\n|Möglich\n|華美でないもvon 校舎内でIst脱ぐ\n|-\n|Schalldämpfer\n|Möglich\n|Möglich\n| 華美でないもvon 校舎内でIst脱ぐ\n|-\n|Pullover\n|Möglich\n|Möglich\n| 学校指定vonもvon\n|-\n|bilden\n|unmöglich\n|Flucht\n|bilden マニキュア ピアス カラコン 装飾品Ist一切禁止\n|}\n\n=そvon他規定=\n\n=Artikelauszug=\n[[Category:Präfektur Chibavon校則]]'}]}}

Schneiden Sie bei Bedarf nur die gewünschten Informationen weiter auf.

Am Ende

Ich habe die MediaWiki-API, der japanische Informationen fehlen, anhand von Beispielen erklärt. Wir können in Zukunft weitere Parametererklärungen und Implementierungsbeispiele hinzufügen! Wir hoffen, Sie finden es nützlich.

Recommended Posts

Ich habe versucht zu erklären, wie der Artikelinhalt mit der MediaWiki-API auf leicht verständliche Weise anhand von Beispielen abgerufen werden kann (Python 3).
[Python] Ich habe versucht, den kollektiven Typ (Satz) auf leicht verständliche Weise zusammenzufassen.
Ich werde erklären, wie man Pandas auf leicht verständliche Weise benutzt.
[Deep Learning von Grund auf neu] Ich habe versucht, die Gradientenbestätigung auf leicht verständliche Weise zu erklären.
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
[Python] Ich habe versucht, Wörter, die für Anfänger schwer zu verstehen sind, auf leicht verständliche Weise zu erklären.
Ich habe versucht zu simulieren, wie sich die Infektion mit Python ausbreitet
Ich habe versucht "Wie man eine Methode in Python dekoriert"
Ich habe versucht, einen Artikel mit SQL Alchemy auf Wiki.js zu erstellen
[Für Anfänger] Ich möchte die Anzahl der Lernerfahrungen leicht verständlich erklären.
Ich habe versucht herauszufinden, wie ich den Arbeitsablauf mit Excel × Python, meiner Artikelzusammenfassung ★, optimieren kann
So ermitteln Sie mit Python den Unterschied zwischen Datum und Uhrzeit in Sekunden
Ich habe versucht, Cpaw Level1 & Level2 Write Up auf leicht verständliche Weise zusammenzufassen
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
So erhalten Sie die Dateien im Ordner [Python]
Ich habe versucht, den unter "Abrufen von Bildern von der Flickr-API mit Python" (Teil 2) veröffentlichten Vorlagencode zu überarbeiten.
So senden Sie automatisch E-Mails mit Anhängen mithilfe der Google Mail-API in Python
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
So ermitteln Sie die Anzahl der Stellen in Python
Erklären Sie ausführlich, wie Sie mit Python einen Sound erzeugen
Ich habe versucht, mit Blenders Python script_Part 01 zu beginnen
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe versucht, mit Blenders Python script_Part 02 zu beginnen
Ich habe versucht, künstliches Perzeptron mit Python zu implementieren
Ich habe versucht zusammenzufassen, wie man Pandas von Python benutzt
Ich habe versucht, die API mit dem Python-Client von echonest zu erreichen
Ich habe untersucht, wie der Arbeitsablauf mit Excel x Python optimiert werden kann
Ich habe untersucht, wie der Arbeitsablauf mit Excel x Python ④ optimiert werden kann
Ich habe versucht, das Artikel-Update des Livedoor-Blogs mit Python und Selen zu automatisieren.
Ich habe untersucht, wie der Arbeitsablauf mit Excel x Python optimiert werden kann
Ich habe untersucht, wie der Arbeitsablauf mit Excel x Python optimiert werden kann
Beim 15. Offline-Echtzeitversuch habe ich versucht, das Problem des Schreibens mit Python zu lösen
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe versucht, API list.csv mit Python aus swagger.yaml zu erstellen
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
Ich habe versucht, die Mail-Sendefunktion in Python zu implementieren
So gelangen Sie mit Vagrant in die Python-Entwicklungsumgebung
Ich habe versucht, verschiedene Informationen von der Codeforces-API abzurufen
[Einführung in Python] So erhalten Sie Daten mit der Funktion listdir
Ich habe eine Klasse erstellt, um das Analyseergebnis von MeCab in ndarray mit Python zu erhalten
So erhalten Sie die Python-Version
Eine einfache Möglichkeit, die Amazon-Produkt-API in Python aufzurufen
Ich habe versucht, den Datenverkehr mit WebSocket in Echtzeit zu beschreiben
Ich habe versucht, die Anfängerausgabe des Ameisenbuchs mit Python zu lösen
Wie Sie die interne Struktur eines Objekts in Python kennen
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
[Python] Ein Memo, das ich versucht habe, mit Asyncio zu beginnen
Klicken Sie in Python auf die New Relic-API, um den Status des Servers abzurufen
Ich habe am Wochenende versucht, mit Bitcoin Systre zu beginnen
[Python] Erklärt anhand eines Beispiels, wie die Formatierungsfunktion verwendet wird
Ich habe versucht, das Bild mit OpenCV im "Bleistift-Zeichenstil" zu verarbeiten
[Python] Ich habe versucht, mithilfe der YouTube-Daten-API verschiedene Informationen abzurufen!
So senden Sie eine Anfrage mit Python an die DMM (FANZA) -API
Ich habe versucht, mit Python + OpenCV eine Bildähnlichkeitsfunktion zu erstellen