Android и Jsoup

Я пытаюсь привести часть содержимого веб-сайта. Я решил использовать Jsoup, потому что с ним я могу взять часть сайта, который вы хотите, и сыграть html-часть этого вывода в веб-обзоре. Это казалось легким, но я попытался запустить свое приложение и не работал. Ниже мой код. Что случилось с ним?

Примечание. Если есть еще один более простой способ сделать это, передайте мне подсказку! Но я хочу получить содержимое в режиме реального времени, хорошо? Спасибо всем!

Public class RestauranteUniversitarioActivity расширяет действие {

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); WebView cardapio = (WebView)findViewById(R.id.web_engine); cardapio.getSettings().setJavaScriptEnabled(true); String data = ""; Document doc = null; try { doc = Jsoup.connect("http://www.iguatu.ce.gov.br/").get(); } catch (IOException e) { e.printStackTrace(); } Elements content = doc.getElementsByClass("dest-left"); if(content.size() > 0) { data = content.get(1).text(); } cardapio.loadData(data, "text/html", "UTF-8"); } 

}

Проблема, скорее всего, в том, что вы анализируете веб-страницу в основном потоке (UI). Это заблокирует пользовательский интерфейс / заставит ваше приложение замораживаться. Переместите doc = Jsoup.connect("http://www.iguatu.ce.gov.br/").get(); К фоновому потоку, например, с помощью AsyncTask или (Intent)Service .

Обратитесь к этой теме, если вы ищете альтернативный синтаксический анализатор html.

 import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import android.app.Activity; import android.os.Bundle; import android.webkit.WebView; public class HtmlParserActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); WebView cardapio = (WebView) findViewById(R.id.web_engine); cardapio.getSettings().setJavaScriptEnabled(true); String data = ""; Document doc = null; try { doc = Jsoup.connect("https://stackoverflow.com/questions/10695350/androi-and-jsoup").get(); Elements elements = doc.getElementsByClass("post-tag"); for(Element element : elements) { data += element.outerHtml(); data += "<br/>"; } cardapio.loadData(data, "text/html", "UTF-8"); } catch (IOException e) { e.printStackTrace(); } } } 

Справочная кулинарная книга Jsoup

К сожалению, у меня недостаточно репутации для комментария в ответ Диры. Проверьте URL-адрес в Jsoup.connect (…) и замените "androi-" на "android-"