Jsoup select () ничего не возвращает в приложении Android - PullRequest
1 голос
/ 09 декабря 2011

Я создаю приложение для Android для сообщества пользователей форума.Провайдер форумов предоставляет мне RSS-каналы из общих категорий, но не генерирует их по темам.Поэтому я получаю URL тем из этих каналов и хочу проанализировать HTML с помощью Jsoup и передать его WebView.

Он работает хорошо, за исключением функции select (), которая ничего не возвращает.

The "HTML RETREIVED »дает мне: <html><head><title>The topic title</title></head><body></body></html>

h1 теги в коде в целях тестирования: он хорошо отображается в WebView и заголовок проанализированной веб-страницы тоже.

Я также поставилстрока журнала сразу после строки select ().Он тоже ничего не возвращает.

Я пытался в чистом Java-проекте разобрать только Jsoup, и все прошло хорошо.Поэтому я предположил, что с Android что-то не так.

PS: в манифесте активно разрешение Интернета.

Я что-то пропустил?

Вот код:

String html;
     Bundle param = this.getIntent().getExtras();
     String url = param.getString("url");
     try {
            Document doc = Jsoup.connect(url).get();
            doc.select(".topic .clear").remove();
            String title = doc.title().toString();
            html = doc.select(".username strong, .entry-content").toString();
            html = "<html><head><title>"+title+"</title></head><body><h1>"+title+"</h1>"+html+"</body></html>";
            WebView webview = new WebView(this);
             getWindow().requestFeature(Window.FEATURE_PROGRESS);
             setContentView(webview);
             webview.getSettings().setJavaScriptEnabled(true);
             final Activity activity = this;
             webview.setWebChromeClient(new WebChromeClient() {
                   public void onProgressChanged(WebView view, int progress) {

                     activity.setProgress(progress * 1000);
                     Log.d("LOADING",""+ progress);
                   }
                 });
             webview.loadData(html, "text/html", "UTF-8");
             //webview.loadUrl(url);
            Log.i("HTML RETREIVED", ""+html);
        } catch (IOException e) {
            Log.e("ERROR", "Error while generate topic");
        }

1 Ответ

3 голосов
/ 12 декабря 2011

Хорошо, я обнаружил кое-что интересное.

Класс, который я хотел выбрать, не был здесь, потому что я получаю мобильную версию веб-страницы.Похоже, приложение Android использует мобильный пользовательский агент, что вполне нормально, но нигде не сказано.

В любом случае, я знаю, о чем сейчас думаю.

...