извлекать информацию из URL - PullRequest
2 голосов
/ 19 октября 2011

Я хочу создать программу, которая будет получать некоторую информацию в виде URL. Например, я даю URL ниже, из LibraryThing

Как я могу получить все слова под вкладкой "TAGS", например

Черная библиотека фэнтези Танкуол и Бонерипер Танкуол и Боевой молот Потрошителя кости?

Я думаю об использовании Java и разработке оболочки для интеллектуального анализа данных, но я не знаю, с чего начать. Может кто-нибудь дать мне совет?

EDIT: Вы оказали мне отличную помощь, но я хочу спросить кое-что еще. Для каждого тега мы можем видеть, сколько раз использовался каждый тег, когда мы нажимаем кнопку «число». Как я могу получить этот номер также?

Ответы [ 2 ]

4 голосов
/ 19 октября 2011

Вы можете использовать анализатор HTML, например Jsoup . Он позволяет выбирать интересующие элементы HTML с помощью простых CSS-селекторов :

1007 * Е.Г. *

Document document = Jsoup.connect("http://www.librarything.com/work/9767358/78536487").get();
Elements tags = document.select(".tags .tag a");

for (Element tag : tags) {
    System.out.println(tag.text());
}

который печатает

Black Library
fantasy
Thanquol & Boneripper
Thanquol and Bone Ripper
Warhammer

Обращаем ваше внимание, что вам следует прочитать robots.txt веб-сайта *, если он есть, и ознакомиться с условиями обслуживания веб-сайта, если он есть, иначе ваш сервер может быть заблокирован по IP-адресу рано или поздно.

0 голосов
/ 19 октября 2011

Я сделал это до того, как использовал PHP с очисткой страницы, затем проанализировал HTML как строку с помощью регулярных выражений.

Пример здесь

Я думаю, что естьНечто подобное в Java и других языках.Концепция будет аналогична:

  1. Загрузка данных страницы.
  2. Анализ данных (т. Е. С помощью регулярного выражения или модели DOM и использованием некоторых CSS-селекторов или некоторых XPath-селекторов).
  3. Делайте то, что вы хотите с данными :)

Стоит помнить, что некоторые люди могут не ценить вас, извлекая данные из своего сайта и получая прибыль / распространяя его в больших масштабах.

...