Java Wikipedia API
1 Comments Published by Christian Ullenboom on Sonntag, September 14, 2008 at Sonntag, September 14, 2008.Wer von Java aus auf die Inhalte von Wikipedia zugreifen, und die Inhalte auch noch Rendern möchte, findet mit der quelloffenen Java Wikipedia API (http://www.matheclipse.org/en/Java_Wikipedia_API) eine passende Unterstützung.
Zum Laden einer Wikipedia-Seite und Renderer in eine Datei ist lediglich nötig:
User user = new User( "", "", "http://de.wikipedia.org/w/api.php" );
List<Page> queryContent = user.queryContent( Arrays.asList( "Java (Programmiersprache)" ) );
String content = queryContent.get( 0 ).getCurrentContent();
WikiModel wikiModel = new WikiModel( "http://de.wikipedia.org/wiki/${image}",
"http://de.wikipedia.org/wiki/${title}" );
String rendererdHtmlContent = wikiModel.render( content );
FileWriter fw = new FileWriter("c:/test.html");
fw.write( rendererdHtmlContent );
fw.close();
Einige Dinge löst der Renderer aber nicht auf. So verbleiben im Text Wiki-Templates wie
- {{Infobox Programmiersprache}}
- {{IPA}}
- {{Wikiversity}}
- {{Wikibooks}}
oder bei anderen Texten
- {{Begriffsklärungshinweis}}
- {{Commonscat}}
- {{internetquelle}}
- {Literatur}}
Auch Bilder werden standardmäßig nicht richtig umgesetzt. So wird bei http://de.wikipedia.org/wiki/Linux aus
[[Bild:Linus Torvalds.jpeg|thumb|right|Linus Torvalds 2004]]
kein Bild, sondern ein Link
<a href="http://de.wikipedia.org/wiki/Bild:Linus_Torvalds.jpeg%7Cthumb%7Cright" id="w">Linus Torvalds 2004</a>
Dumm nur, dass %7Cthumb%7Cright falsch ist, sonst wäre wenigstens der Link korrekt. (%7C ist |)
Labels: Open Source


Hallo
Kannst du bitte mal das folgende Beispiel testen. Hierbei ist das APIWikiModel schon darauf ausgelegt Bilder und Templates mit runterzuladen und die Templates in einer Derby Datenbank für weitere Zugriffe zu cachen.
Siehe: HTMLCreatorTest.java