Abrufen von Textinhalt von der MediaWiki-Seite über die API
Ich bin ganz neu bei MediaWiki, und jetzt habe ich ein bisschen ein problem.
Ich habe den Titel der Wiki-Seite, und ich will mich nur auf den text der besagten Seite mit api.php, aber alle, die ich gefunden habe in der API ist ein Weg, um die Wiki-Inhalte der Seite (mit wiki-markup). Ich habe diese HTTP-Anforderung...
/api.php?action=query&prop=revisions&rvlimit=1&rvprop=content&format=xml&titles=test
Aber ich brauche nur die textuellen Inhalte, ohne die Wiki-markup.
Ist das möglich mit der MediaWiki-API?
InformationsquelleAutor der Frage Le_Coeur | 2009-10-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass es möglich ist, mit Hilfe der API zu bekommen, nur der text.
Was für mich gearbeitet hat, war auf Anfrage der HTML-Seite (mit den normalen URL, die Sie verwenden würden, in einem browser) und strip out the HTML tags, die unter dem content-div.
EDIT:
Ich habe gute Ergebnisse mit HTML-Parser für Java. Es hat Beispiele dafür, wie zu entfernen HTML-tags unter einem bestimmten DIV.
InformationsquelleAutor der Antwort Eric Normand
Verwenden
action=parse
um die html:/api.php?action=parse&page=test
Einen Weg, um den text aus dem html wäre, um es zu laden in einen browser und gehen Sie den Knoten, Suche nur für die text-Knoten mit JavaScript.
InformationsquelleAutor der Antwort gilly3
Den TextExtracts Erweiterung der API wird über das, was Sie gefragt haben. Verwenden
prop=extracts
zu bekommen bereinigt Antwort. Zum Beispiel, dieser link wird Ihnen aufgeräumt text für die Stack-Überlauf Artikel. Was auch schön ist, dass es immer noch Abschnitt enthält tags, so dass Sie erkennen können einzelne Abschnitte des Artikels.Nur um einen sichtbaren link in meiner Antwort, der obige link sieht so aus:
Edit: Wie Amr erwähnt, TextExtracts ist ein Erweiterung zu MediaWiki, so dass es nicht unbedingt für jede MediaWiki-Website.
InformationsquelleAutor der Antwort eric.mitchell
Hinzufügen
?action=raw
am Ende einer MediaWiki-Seite zurückzukehren, die neuesten Inhalte in eine roh-text-format. ZB:- https://en.wikipedia.org/wiki/Main_Page?action=rawInformationsquelleAutor der Antwort baijum
Können Sie die wiki-Daten in text-format aus der API mithilfe der
explaintext
parameter. Plus, wenn Sie brauchen, um Zugang zu vielen Titeln Informationen, die Sie bekommen können alle den Titel " wiki-Daten in einem einzigen Aufruf. Verwenden Sie das pipe-Zeichen|
trennen Sie die einzelnen Titel. Zum Beispiel dieser API-Aufruf werden die Daten zurück, die sowohl aus der "Google" und "Yahoo" Seiten:Parameter:
explaintext
: Return-Extrakte als plain text statt HTML beschränkt.exlimit=max
: Abfrage mehr als ein Ergebnis. Der max ist derzeit 20.exintro
: Rückgabe nur den Inhalt vor dem ersten Abschnitt. Wenn Sie möchten, dass die Daten vollständig, entfernen Sie einfach diese.redirects=
: Lösen Sie umleiten Fragen.InformationsquelleAutor der Antwort Anuraj
Das ist der einfachste Weg:
http://en.wikipedia.org/w/api.php?format=xml&action=query&titles=Albert%20Einstein&prop=revisions&rvprop=content
InformationsquelleAutor der Antwort Hardest
Verwenden Sie action=render zu bekommen, die bewährteste Seite:
https://wiki.eclipse.org/Tip_of_the_Day/Eclipse_Tips/Now_where_was_I?action=render
vs
https://wiki.eclipse.org/Tip_of_the_Day/Eclipse_Tips/Now_where_was_I
InformationsquelleAutor der Antwort Yaza
Wiki-Seiten ohne jede Formatierung Symbole würde nicht wirklich viel Sinn in vielen Fällen.
Können Sie Streifen die Formatierung selbst, wenn Sie wollen, aber Sie werden brechen einige Sachen in der process.
(Es sei denn, Sie schaffen so etwas wie eine Suchmaschine, in dem Fall brauchst du nur den text teilen und kann ignoriert Formatierung Symbole komplett)
InformationsquelleAutor der Antwort Joel L
Python-Nutzer, die an dieser Frage interessiert sein könnten in der
wikipedia
Modul (docs):Jede Formatierung, außer für die Abschnitte (
==
) gestreift ist Weg.InformationsquelleAutor der Antwort Martin Thoma
Können Sie tun, eine Sache nach der Inhalt brachte in Ihre Seite - Sie können die PHP-Funktion
strip_tags()
zum entfernen der HTML-tags.InformationsquelleAutor der Antwort user8205791