¿Cómo obtener el html-fuente de una página de un enlace html en android?

Estoy trabajando en una aplicación que necesita para obtener el origen de una página web de un enlace, y luego analizar el html de esa página.

¿Podría darme algunos ejemplos, o puntos de partida donde buscar para empezar a escribir una aplicación tan?

6 Solutions collect form web for “¿Cómo obtener el html-fuente de una página de un enlace html en android?”

Puede utilizar HttpClient para realizar un HTTP GET y recuperar la respuesta HTML, algo así:

HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet(url); HttpResponse response = client.execute(request); String html = ""; InputStream in = response.getEntity().getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); StringBuilder str = new StringBuilder(); String line = null; while((line = reader.readLine()) != null) { str.append(line); } in.close(); html = str.toString(); 

Yo sugeriría jsoup .

Según su sitio web:

Busca la página principal de Wikipedia, analiza en un DOM y selecciona los titulares de la sección de noticias en una lista de elementos (muestra en línea):

 Document doc = Jsoup.connect("http://en.wikipedia.org/").get(); Elements newsHeadlines = doc.select("#mp-itn ba"); 

Empezando:

  1. Descargue la biblioteca jsoup jar core
  2. Lea la introducción del libro de cocina
  3. ¡Disfrutar!

Diviértete, Paul

Esta pregunta es un poco antigua, pero me imaginé que debería publicar mi respuesta ahora que DefaultHttpClient , HttpGet , etc están obsoletos. Esta función debe obtener y devolver HTML, dado un URL.

 public static String getHtml(String url) throws IOException { // Build and set timeout values for the request. URLConnection connection = (new URL(url)).openConnection(); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); connection.connect(); // Read and store the result line by line then return the entire string. InputStream in = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); StringBuilder html = new StringBuilder(); for (String line; (line = reader.readLine()) != null; ) { html.append(line); } in.close(); return html.toString(); } 
 public class RetrieveSiteData extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... urls) { StringBuilder builder = new StringBuilder(100000); for (String url : urls) { DefaultHttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); try { HttpResponse execute = client.execute(httpGet); InputStream content = execute.getEntity().getContent(); BufferedReader buffer = new BufferedReader(new InputStreamReader(content)); String s = ""; while ((s = buffer.readLine()) != null) { builder.append(s); } } catch (Exception e) { e.printStackTrace(); } } return builder.toString(); } @Override protected void onPostExecute(String result) { } } 

Si echas un vistazo aquí o aquí , verás que no puedes hacerlo directamente con la API de Android, necesitas una biblioteca externa …

Usted puede elegir entre el 2 aquí está arriba si usted necesita un librairy externo.

Llámelo como

 new RetrieveFeedTask(new OnTaskFinished() { @Override public void onFeedRetrieved(String feeds) { //do whatever you want to do with the feeds } }).execute("http://enterurlhere.com"); 

RetrieveFeedTask.class

 class RetrieveFeedTask extends AsyncTask<String, Void, String> { String HTML_response= ""; OnTaskFinished onOurTaskFinished; public RetrieveFeedTask(OnTaskFinished onTaskFinished) { onOurTaskFinished = onTaskFinished; } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected String doInBackground(String... urls) { try { URL url = new URL(urls[0]); // enter your url here which to download URLConnection conn = url.openConnection(); // open the stream and put it into BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); String inputLine; while ((inputLine = br.readLine()) != null) { // System.out.println(inputLine); HTML_response += inputLine; } br.close(); System.out.println("Done"); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return HTML_response; } @Override protected void onPostExecute(String feed) { onOurTaskFinished.onFeedRetrieved(feed); } } 

OnTaskFinished.java

 public interface OnTaskFinished { public void onFeedRetrieved(String feeds); } 
  • Desactivar texto predictivo para el campo de contraseña en sitios web
  • Envío de correo electrónico formateado HTML en Android
  • ¿Usar el botón de retroceso de Android en el dispositivo para volver a la vista principal en la aplicación Framework7?
  • Envoltura de HTML en una aplicación para Android
  • ¿Cómo cambiar el contenido de EditText con Javascript?
  • Escritorio remoto basado en web para conectarse a android
  • ¿Es posible mostrar la imagen con el método loadDataWithBaseURL () en android?
  • ¿Cómo enviar datos multipart / form a un servidor web desde android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.