Jsoup получить элемент внутри элемента

Я пытаюсь очистить следующую страницу: https://icobench.com/icos, и я застрял, пытаясь извлечь биты информации из элементов с помощью класса ico_data. Код выглядит так:

<td class = "ico_data">
  <div class = "image_box"><a href = "/ico/gcox" class = "image" style = "background-image:url('/images/icos/icons/gcox.jpg');"></a></div>
  <div class = "content">
    <a class = "name" href = "/ico/gcox"><object><a href = "/premium" title = "Premium" class = "premium">&nbsp;</a></object>GCOX</a>
    <p>GCOX is the world's first blockchain-powered platform that allows the popularity of celebrities to be tokenised and listed.<br><br><b>Restrictions KYC:</b> Yes <span class = "line">|</span> <b>Whitelist:</b> Yes <span class = "line">|</span> <b>Countries:</b>      USA, Singapore</p>
  </div>
  <div class = "shw">
    <div class = "row"><b>Start:</b> 08 Aug 2018</div>
    <div class = "row"><b>End:</b> 31 Aug 2018</div>
    <div class = "row"><b>Rate:</b>
      <div class = "rate color4">3.9</div>
    </div>
  </div>
</td>

Я хочу извлечь имя, описание, дату начала, дату окончания. Как мне это сделать?

Это мой код на данный момент:

Document document = Jsoup.connect("https://icobench.com/icos").userAgent("Mozilla").get();    
Elements companyElements = document.getElementsByClass("ico_data");
for (Element companyElement : companyElements) {
   // do stuff here
}

Спасибо,

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
718
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете отфильтровать начало и конец, отфильтровав теги с помощью. Имя по классу «name» и описание по тегу P внутри содержимого div.

public void extract(){
        try {
            Connection connection = Jsoup.connect("https://icobench.com/icos");
            Document document = connection.get();
            Elements companyElements = document.select(".ico_data");
            for (Element companyElement : companyElements) {

                if (companyElement.select(".content")!=null&&companyElement.select(".content").size()>0){

                    Element content = companyElement.select(".content").first();
                    String name = companyElement.select(".content").select(".name").text();
                    String description = companyElement.select(".content").select("p").text();
                    String start = companyElement.select("b:contains(Start)").first()
                            .parent().text().replace(companyElement.select("b:contains(Start)").first().text(),"");
                    String end = companyElement.select("b:contains(End)").first()
                            .parent().text().replace(companyElement.select("b:contains(End)").first().text(),"");

                }

                System.out.println(companyElement);
                // do stuff here
                }
        } catch (IOException e) {
            e.printStackTrace();
        }

Другие вопросы по теме