2015-12-14 5 views
-1
Document doc = getDocumen("https://pl.wiktionary.org/wiki/set#set_.28j.C4.99zyk_angielski.29"); 
Elements links = doc.select("dfn[style]"); - ?? 
for (Element link : links) 
{ 
    link.select("a [href]"); 
    String linkText = link.text() 
} 
+0

Вы можете использовать парсер, чтобы получить то, что хотите. Взгляните на эту ссылку - http://jsoup.org/. –

+2

Возможный дубликат [Есть ли API Википедии?] (Http://stackoverflow.com/questions/627594/is-there-a-wikipedia-api) – BetaRide

+0

Что вы пробовали до сих пор и почему вы были недовольны этими результаты? –

ответ

0

Вот как бы я хотел:

Document doc = getDocumen("https://pl.wiktionary.org/wiki/set#set_.28j.C4.99zyk_angielski.29"); 
Elements elements = doc.select("h2:has(span#en) ~ p:not(h2:has(span#en) ~ p ~ h2 ~ p) i, h2:has(span#en) ~ p:not(h2:has(span#en) ~ p ~ h2 ~ p) + dl > dd"); 
if (elements.isEmpty()) { 
    throw new RuntimeException("No definitions found."); 
} 

String parent = null; 
for (Element element : elements) { 
    switch (element.tagName().toLowerCase()) { 
    case "i": 
     parent = element.text(); 
     break; 

    case "dd": 
     System.out.println(parent + " - " + element.text()); 
     break; 

    default: 
     throw new RuntimeException("Unexpected element:\n" + element.outerHtml()); 
    } 
} 

OUTPUT

rzeczownik - (1.1) zestaw 
rzeczownik - (1.2) mat. zbiór 
rzeczownik - (1.3) elektron. odbiornik, aparat odbiorczy 
rzeczownik - (1.4) film. plan zdjęciowy 
rzeczownik - (1.5) sport. set 
rzeczownik - (1.6) teatr. dekoracja 
rzeczownik - (1.7) tendencja, kierunek 
rzeczownik - (1.8) koteria 
rzeczownik - (1.9) nora borsuka 
rzeczownik - (1.10) masz. agregat 
przymiotnik - (2.1) gotowy 
przymiotnik - (2.2) stały, ustalony 
przymiotnik - (2.3) nieruchomy 
przymiotnik - (2.4) postanowiony 
przymiotnik - (2.5) określony 
czasownik - (3.1) układać, ustawiać 
czasownik - (3.2) nastawiać (kość) 
czasownik - (3.3) prostować 
czasownik - (3.4) przygotowywać 
czasownik - (3.5) powodować 
czasownik - (3.6) o słońcu: zachodzić 
czasownik - (3.7) ustalać 

ИМО, вы должны попытаться найти вики-API. Хотя данные, похоже, имеют одну и ту же презентацию со страницы на страницу, html-код за ней может отличаться.

ОБСУЖДЕНИЕ

Ключ выше код запроса CSS.

h2:has(span#en) ~ p:not(h2:has(span#en) ~ p ~ h2 ~ p) i, h2:has(span#en) ~ p:not(h2:has(span#en) ~ p ~ h2 ~ p) + dl > dd 

Этот запрос выбирает p узлов между двумя узлами h2. Для достижения этой цели, вот как это сделать:

h2:has(span#en) /* Select the h2 node having the span with id 'en' */ 
~ p /* Select all p nodes preceded by previous selected h2 node... */ 
:not(h2:has(span#en) ~ p ~ h2 ~ p) /* ... but ignore any p nodes after the previously selected p nodes */ 

Проверено на JSoup 1.8.3

EDIT: OP предложил JWBF (Java Wiki Bot Framework) в качестве вики API.

+0

Я получил «Найденные определения» :( – user2721692

+0

О вики Api. Я пробовал jwbf, и я не знаю, как это сделать с api – user2721692

+0

@ user2721692 Какой URL-адрес дал вы «Определения не найдены»? – Stephan

 Смежные вопросы

  • Нет связанных вопросов^_^