JSoup не анализирует страницу известных проблем Android

#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. Ответ для потомков.