Извлечение данных со страницы HTML с помощью Jsoup - PullRequest
0 голосов
/ 27 апреля 2019

Я пытаюсь получить свой уровень каждого навыка от https://secure.runescape.com/m=hiscore_oldschool/hiscorepersonal.ws?user1=Feed%20Meh%20Dog

Это таблица, но я нигде не вижу идентификатора таблицы. Мне просто нужно знать, какой идентификатор или класс я должен использовать.

Пробовал несколько уроков, но у всех есть простой класс таблицы или идентификатор. Есть идентификатор div, который, я думаю, мне следует использовать, но я не знаю, как извлечь каждую конкретную строку / навык.

итоговый документ документа = Jsoup.connect ("https://secure.runescape.com/m=hiscore_oldschool/hiscorepersonal.ws?user1=Feed%20Meh%20Dog").get();

    for (Element row : document.select("WHAT DO I PUT HERE tr")); {
        final String Attack = row.select("WHAT DO I PUT HERE")
        final String Defence = row.select("WHAT DO I PUT HERE")
        final String Strength = row.select("WHAT DO I PUT HERE")
    }

Просто хочу вывести ряд или отдельные навыки на консоль. Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 27 апреля 2019

Я бы рекомендовал использовать официальный API, если вы хотите легко получить данные, которые вы ищете.Используя эту ссылку: https://secure.runescape.com/m=hiscore_oldschool/index_lite.ws?player= Чтобы сделать это с Jsoup в хакерской манере, это будет выглядеть примерно так ...

    final Document document = Jsoup.connect("https://secure.runescape.com/m=hiscore_oldschool/index_lite.ws?player=Feed%20Meh%20Dog").get();
    final Element body = document.selectFirst("body");

    String[] rawSkills = body.html().split(" ");
    ArrayList<String[]> skills = new ArrayList<>();

    for(String s: rawSkills ) {
        skills.add(s.split(","));
    }

    System.out.println(skills.get(0)[1]);

Затем, чтобы выбрать отдельный навык, вы должны сделать что-то вроде skills.get(x)[y] если x является индексом в массиве, навык равен (начиная с 0), а y обозначает, какую информацию из требуемого навыка.0 - ранг, 1 - уровень навыка, 2 - хр.

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

РЕДАКТИРОВАТЬ: я позволил себе создать небольшую оболочку Java для этой конкретной конечной точки, которую вы можете найти здесь .

...