Как прочитать конкретное строковое значение с помощью JSoup

0

Я обработал код, чтобы прочитать весь контент из html.

URL url = new URL("https://idms.sunamerica.com/v2/market/home.idms");
             Document doc = Jsoup.parse(url, 5*1000);
             TextNode tn = new TextNode(doc.body().html(), "");
                String entireText = tn.getWholeText();

Теперь wholeText содержит текст ниже

<tr class="evenrow" onmouseover="loadMiniChart(\'S&amp;P Midcap 400\',8318990,\'market_mini_chart\')">
       '); document.write('
       <td>
        <div align="left">
         S&amp;P Midcap 400 Index
        </div></td>'); document.write('
       <td>1254.56</td>'); document.write('
       <td><span class="negative">-2.83</span></td>'); document.write('
      </tr>');

Теперь мне нужно получить значение 1254.56, используя String "S & P Midcap 400 Index".

Есть ли какой-либо метод для соответствия тексту? Помощь приветствуется.... :)

Теги:
jsoup

2 ответа

0

Может использовать регулярное выражение для таких сценариев

Вот решение для вашего вопроса

String ResultString = null;
try {
    Pattern regex = Pattern.compile("<td>\\d+.\\d+</td>", Pattern.DOTALL | Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.MULTILINE);
    Matcher regexMatcher = regex.matcher(subjectString);
    if (regexMatcher.find()) {
        ResultString = regexMatcher.group();
    } 
} catch (PatternSyntaxException ex) {
    // Syntax error in the regular expression
}

благодаря

0

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

Что можно сделать

  • вы можете попробовать вручную извлечь текст, необходимый
  • или рендеринг страницы в Selenium, затем получение источника страницы и разбор его с помощью Jsoup
  • или открытие страницы в вашем веб-браузере, сохранение ее на диск и затем синтаксический анализ

Что касается примера Jsoup, нет необходимости создавать TextNode из html. Вы получаете дерево в doc.body(), а затем перемещаетесь с помощью Jsoup API: селектора CSS или методы дерева API (дети, сначала и т.д.).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню