Справочный материал
http://www.tptp.org/CASC/J9/WWWFiles/Results.html
Поэтому я использую Jsoup для извлечения данных с веб-страницы. Однако я столкнулся с небольшой проблемой.Я получаю сообщение об ошибке, похожее на это:
406 81%
401 80%
355 71%
209 41%
163 81%
162 81%
157 78%
92 46%Exception in thread "main"
461 92%
454 90%
362 72%
350 70%
298 59%
256 51%
247 49%
143 28%
133 26%
126 25%
123 24%
122 24%
73 14%
50 10%
java.lang.IndexOutOfBoundsException: Index: 22, Size: 22
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at org.jsoup.select.Elements.get(Elements.java:544)
at test.Etest.main(Etest.java:44)
Что странно, потому что, когда я делал что-то похожее, я никогда не получал эту ошибку.Вот код, который я написал.
Document doc = Jsoup.connect(html).get();
Elements tableElements = doc.select("table");
//get the other tables maybe?
Elements tableHeaderEles = tableElements.select("tr:contains(Solutions) > td");
for(int z = 0; 0 < tableHeaderEles.size(); z++) {
System.out.println(tableHeaderEles.get(z).text());
}
Единственные строки, которые меня интересуют, - это строка «Решения», а не столбец «Решения», и я хочу оставить процент.Я начал с цикла for, чтобы все заработало.Мне также нужны только первые шесть таблиц, но я могу решить это позже самостоятельно.Итак, из этой строки и похожих на нее строк я просто хочу 406.
<td align="RIGHT" bgcolor="WHITE">406<span class="xxsmallfont"> 81%</span>
Итак, чтобы подвести итог очень быстро, у меня есть 2 вопроса.
1. How am I getting this error,especially that weird exception? Its
extracting fine at the beginning, is it not going to the other tables?
2. How do I get just the 406? text() will take the percentage with it
and its outside of the span so thats not an option.
Неудачная часть всего этого - то, что я делал это более простым способом, лист превосходства, но из-за этого я должен сделать это.Любая помощь или указатели приветствуются.Извините за длинный пост.