2016-06-12 3 views
1

Я пытаюсь создать функцию поиска в google chrome. С учетом строки он выделит все области, содержащие эту строку. Я использую java. IИзвлечь весь видимый текст из html

Для этого сначала мне нужно извлечь весь видимый текст. Я попытался проанализировать html-страницы, чтобы выяснить, как извлечь только текст.

Для секций, который выглядит, как это, кажется,

Чтобы сделать это, я планировал использовать jsoup. Я не уверен, как извлечь текст из разделов, который выглядит так. (Это комментарий youtube с ссылкой «читать больше» и «показывать меньше»).

Из этого раздела я пытаюсь извлечь «Не собираюсь лгать, что собака ДОСТАТОЧНО» и («Les mer» или «Vis mindre» в зависимости от того, какая из них видна).

<div class="comment-renderer-text" tabindex="0" role="article"> 
    <div class="comment-renderer-text-content">Not gonna lie, dat dog is ADORABLE</div> 
     <div class="comment-text-toggle hid"> 
      <div class="comment-text-toggle-link read-more"> 
       <button class="yt-uix-button yt-uix-button-size-default yt-uix-button-link" type="button" onclick="return false;"> 
        <span class="yt-uix-button-content">Les mer 
        </span> 
       </button> 
      </div> 
     <div class="comment-text-toggle-link show-less hid"> 
      <button class="yt-uix-button yt-uix-button-size-default yt-uix-button-link" type="button" onclick="return false;"> 
       <span class="yt-uix-button-content">Vis mindre 
       </span> 
      </button> 
     </div> 
    </div> 
</div> 

ответ

0

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

String text = doc.select("div.comment-renderer-text-content").first().text(); 

Команда doc.select получает элементы, содержащие указанный заданный HTML-запрос. Затем я получаю первый и конвертирую его в текст.

Подробнее можно прочитать здесь: Jsoup Selector

Edit:

Вы можете использовать этот код, чтобы получить видимый текст, а не на класс:

String text = doc.body().text(); 
+0

Я хочу, чтобы извлечь какой-либо видимый текст в html-файле. Поэтому это решение слишком специфично. – mcNogard

+0

@mcNogard Вы хотите, чтобы текст «Vis mindre» и «Les mer» были пробелами, а не divs? – Jop

+0

В этом случае я также хочу, чтобы «Vis mindre», «Les mer» был извлечен, если они также видны. Я не понял, что в этом разделе html появился более заметный текст. Я отредактирую свой оригинальный пост. – mcNogard

Смежные вопросы