#android #jsoup
#Android #jsoup
Вопрос:
Я использую JSoup для загрузки и анализа страницы проблем Android. Пока это мой код:
URL url = null;
try {
url = new URL(
"http://www.google.com/support/androidmarket/developer/bin/static.py?page=known_issues.cs");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Document document = Jsoup.parse(url, 5000);
EditText bla;
bla = (EditText) this.findViewById(R.id.editText1);
bla.setText(document.toString());
if (document.toString().contains("recentfixes")) {
Toast.makeText(this, "YES", 1).show();
}
Ну, странно то, что анализируется ВСЯ страница, НО раздел с недавними исправлениями. Это вывод wget, и это проанализированный вывод.
Можете ли вы помочь мне с этим?
Комментарии:
1. Есть ли какие-либо другие анализаторы HTML, которые вы можете попробовать? Я обнаружил, что htmlcleaner.sourceforge.net является довольно прочным.
2. Нет, он также не анализирует недавние исправления… это странно.
3. Вы пробовали анализировать весь документ как строку, а не полагаться на сетевой запрос? Интересно
static.py
, фильтрует ли служба контент на основе запрашивающего. Посмотрите, как Jsoup или HTMLCleaner запрашивают страницу, и распечатайте данные. Если есть информация о последних историях, возьмите строковый ответ и запустите его через оба анализатора. Если оба по-прежнему не работают, создайте минимальный неудачный тестовый пример и зарегистрируйте проблему для обоих очистителей.4. Я не могу воспроизвести вашу проблему.
System.out.println(Jsoup.connect("http://www.google.com/support/androidmarket/developer/bin/static.py?page=known_issues.cs").get().toString().contains("recentfixes"));
просто выдаетtrue
.5. Ах, если я использую connect () вместо parse (), это сработает. Спасибо! 🙂
Ответ №1:
Попробуйте вместо этого использовать .connect.
Следующее должно предоставить вам весь текст страницы:
URL url = null;
try {
url = new URL(
"http://www.google.com/support/androidmarket/developer/bin/static.py?page=known_issues.cs");
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
Document document = Jsoup.connect(url).timeout(0).get();
String entireText = document.text();
} catch (IOException e) {
e.printStackTrace();
}
Комментарии:
1. Вопрос от октября 2011 года, просто подумал, что вы должны знать.
2. Ответ для потомков.