Как в Java EE получить данные с таких сайтов, как Google Dictionary или Definition Lookup

Хорошо, я полный нуб в переполнении стека, поэтому, пожалуйста, простите меня, если я сделаю что-то не так :3.

Я использую java EE в eclipse mars и хочу получить ответ с веб-сайта, такого как Definition Lookup или словарь Google (http://google-dictionary.so8848.com/).

Насколько я понимаю, мне нужно будет отправить запрос через URL-адрес, используя формат, аналогичный этому google-dictionary.so8848.com/meaning?word="Слово для поиска"

Чего я не знаю или не понимаю, так это того, как именно это сделать, заранее спасибо всем, кто готов ответить на этот вопрос ‹3


person pie pies    schedule 19.06.2017    source источник


Ответы (1)


То, что вам нужно здесь, называется веб-скрапинг, вы можете сделать это с помощью нескольких фреймворков, но я рекомендовал Jsoup, потому что он самый простой.

Вот быстрый пример использования Jsoup:

Первый: Загрузите jar-файл Jsoup:

Или, если вы используете Maven, добавьте его в POM.xml.

<dependency>
  <!-- jsoup HTML parser library @ https://jsoup.org/ -->
  <groupId>org.jsoup</groupId>
  <artifactId>jsoup</artifactId>
  <version>1.10.3</version>
</dependency>

Второе: подключитесь к нужному веб-сайту:

Document doc = Jsoup.connect("google-dictionary.so8848.com/meaning?
word="Word to lookup"").get();

Третье: проанализируйте и найдите нужные элементы в возвращаемом HTML:

Elements newsHeadlines = doc.select("Element you want");
person Fady Saad    schedule 19.06.2017
comment
Спасибо за помощь, вы спасли мою задницу. Последний быстрый вопрос: как мне найти имя элемента на HTML-странице (я не особенно хорошо разбираюсь в HTML, и я только знаю, что это значит) - person pie pies; 19.06.2017
comment
У вас есть два варианта: либо выбрать по имени тега, например: ‹div› div — это имя, либо получить его по уникальному значению, например (name, id, class) ex: ‹div id=id name=name class=class› все это с использованием селекторов, подобных Css, например: Elements newsHeadlines = doc.select(div[name=myname]); - person Fady Saad; 19.06.2017
comment
о, подождите еще одну вещь, какой импорт документов мне следует использовать, потому что я использую Jsoup, и он вызывает подозрение (ошибка Unhandeled IOException, которую я понятия не имею, что означает) - person pie pies; 19.06.2017
comment
Подробности см. в этом ответе. - person Fady Saad; 19.06.2017