Я пытаюсь использовать JSoup для получения некоторого контента с http://dictionary.reference.com/browse/quick. Если вы перейдете на эту страницу, вы увидите, что способ организации данных состоит в том, чтобы представить каждый «тип слова» (прилагательное, глагол, существительное) для слова быстро как свой раздел, и каждый раздел содержит 1+ списки определений.Использование JSoup для агрегирования данных
Чтобы сделать вещи немного более затруднит, каждое слово в каждом определении есть ссылка на еще одну dictionary.com страница:
quick
adjective
1. done, proceeding, or occurring with promptness or rapidity...
2. that is over or completed within a short interval of time
...
14. Archaic.
a. endowed with life
b. having a high degree of vigor, energy, ...
noun
1. living persons; the quick and the dead
2. the tender, sensitive flesh of the living body...
...
adverb
...
То, что я хочу сделать, это использовать JSoup для получения типов слов и их соответствующие определения в виде списка строк, например:
public class Metadata {
// Ex: "adjective", "noun", etc.
private String wordType;
// Ex: String #1: "1. done, proceeding, or occurring with promptness or rapidity..."
// String #2: "that is over or completed within a short interval of time..."
private List<String> definitions;
}
Таким образом, страница на самом деле состоит из List<Metadata>
, где каждый Metadata
элемент представляет собой тип слово в паре 1+ определений.
Я был в состоянии найти список типов слов, используя довольно тривиальное API вызова:
// Contains 1 Element for each word type, like "adjective", "noun", etc.
Document doc = Jsoup.connect("http://dictionary.reference.com/browse/quick").get();
Elements wordTypes = doc.select("div.body div.pbk span.pg");
Но я борюсь выяснить, что являюсь флористика нужно doc.select(...)
я должен сделать, чтобы получить каждый Metadata
экземпляр. У кого-нибудь, кто умеет разбираться в CSS-селекторах и умеет с JSoup, есть идеи? Заранее спасибо!