#java #android
#java #Android
Вопрос:
<div class="serieSelector serieSelected" data-serie="36" data-title="Steps">
<div class="value fontGreyBold">2620</div>
<div id="stepsPulse" class="fontGreyLight">Steps</div>
</div>
В настоящее время я работаю над проектом Android, которому необходимо проанализировать некоторые данные с веб-сайта и отобразить данные в TextView. Как видно выше, мне нужно отобразить выделенное значение, которое равно «2620». Я использую Jsoup, и это мои данные элемента, полученные с веб-сайта. Я не знаю, какой именно тег использовать.
try {
Document document = Jsoup.connect(url).get();
Elements stepstaken = document
.select("div[class=measureValue fontGreyBold]span[class]");
stta = stepstaken.attr("class");
} catch (IOException e) {
e.printStackTrace();
}
Приведенный выше код не работает, поэтому приветствуются любые возможные ответы. Спасибо!
Комментарии:
1. пожалуйста, отформатируйте свой код 🙂
Ответ №1:
Я всегда использую PHP Simple DOM Parser всякий раз, когда мне нужно что-либо разобрать. Затем вы бы просто создали простой REST API, который возвращает проанализированные результаты. Работает как шарм. 🙂
Ответ №2:
Попробуйте этот разделитель
document.select("div.value.fontGreyBold");
Пример
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class JsoupParser {
public static void main(String[] args) {
String html = "<div class="serieSelector serieSelected" data-serie="36" data-title="Steps">"
"<div class="value fontGreyBold">2620</div>"
"<div id="stepsPulse" class="fontGreyLight">Steps</div>"
"</div>";
Document document = Jsoup.parse(html);
Elements stepstaken = document.select("div.value.fontGreyBold");
System.out.println(stepstaken.text());
}
}
Комментарии:
1. К сожалению, это не работает. Я думаю, что может возникнуть проблема с входом в систему. Для этой страницы требуется логин, и, возможно, класс не распознает зарегистрированный сеанс.
2. Вы можете использовать jsoup, чтобы сначала отправить запрос на вход, а затем проанализировать ответ.
3. Хорошо, спасибо за информацию. Я попробую это таким образом и буду держать вас в курсе.