Wikipedia API

Katılım
20 Mart 2020
Mesajlar
1.076
Makaleler
1
Çözümler
5
Selamlar, andoid bir uygulama için Wikipedia üzerinden veri çekmem gerekiyor. Öncelikle JWiki kütüphanesini kullandım fakat çalışmadı ya da ben beceremedim. Sonrasında iki farklı API araştırdım.

https://tr.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro&explaintext&redirects=1&titles=Stalingrad Muharebesi ( uzun olan )
https://tr.wikipedia.org/api/rest_v1/page/summary/Stalingrad_Muharebesi (kısa olan)

Bu iki link var bulabildiğim. Fakat 1.linkte ki gibi bir açıklama istiyorum ikinci link sadece özet geçiyor. Benim sormak istediğim ise şu,
1.link de sırasıyla "batchcomplete", "query" , "pages" , "konunun page id'si" diyerek açıklama kısmına gidiliyor. İlk linkteki gibi sadece "extract" diyerek açıklamaya ulaşabilir miyim?

Örneğin ben veritabanına Adolf Hitler, Stalin diyerek iki isim giriyorum önceden. Burada o isimleri alıp API kısmında titles yazan yere koyacak ve açıklama kısmındaki yazıyı alacak. Ayrıyeten page id eklemek istemiyorum.

Biraz karışık oldu ama anlatabilmişimdir umarım.
 
Daha şık bir çözümü vardır mutlaka ama aşağıdaki gibi "extract" değerine ulaşılabilir.
Java:
    private void finish(String result) throws JSONException {
            JSONObject jObject = new JSONObject(result).getJSONObject("query").getJSONObject("pages");
            Iterator<String> keys = jObject.keys();
            while(keys.hasNext()) {
                String key = keys.next();
                if (jObject.get(key) instanceof JSONObject) {
                    String extractTxt = jObject.getJSONObject(key).getString("extract");
                }
            }
        }
 

Geri
Yukarı