Así que estoy construyendo una aplicación que muestra una imagen desde un sitio web al que voy en una interfaz más fácil de usar. En este momento hay muchos problemas, pero el más grande en este momento es buscar las imágenes para mostrarlas.¿Hay algo más rápido que Jsoup para raspar HTML?
De la manera en que lo tengo ahora, las imágenes se muestran en un GridView de tamaño 12, reflejando el número de imágenes en cada página del tablero de imágenes. Estoy usando Jsoup para raspar la página para que las URL de la imagen en miniatura se muestren en GridView, así como para que las URL de las imágenes de tamaño completo se muestren cuando un usuario hace clic en la miniatura.
El problema ahora es que toma de 8-12 segundos en promedio para Jsoup obtener la página HTML para raspar. Esto me parece inaceptable y me preguntaba si había alguna forma de hacerlo más rápido o si esto sería un cuello de botella inherente del que no puedo hacer nada.
Aquí está el código que estoy usando para buscar la página para raspar:
try {
Document doc = Jsoup.connect(url).get();
Elements links = doc.select("img[src*=/alt2/]");
for (Element link : links) {
thumbURL = link.attr("src");
linkURL = thumbURL.replace("/alt2/", "/").replace("s.jpg", ".jpg");
imgSrc.add(new Pair<String, String>(thumbURL, linkURL));
}
}
catch {
e.printStackTrace();
}
Bueno, la cosa es que lo cronometré la llamada get() que es donde obtuve el retraso de 8-12 segundos. Echaré un vistazo al selector sin embargo. – seraphzero
Puede ser más rápido seleccionar todas las imágenes y luego recorrerlas manualmente seleccionando las imágenes correctas. –
Ejecutando más pruebas de tiempo, estoy seguro de que es la llamada a get() la que está ocupando todo el tiempo. En un proyecto Java normal, la llamada get() tarda alrededor de 1-2 segundos y la llamada select() dura aproximadamente 0,05 segundos. Al ejecutar el mismo código en el emulador de Android, está tomando los mencionados 8-12 segundos para get() y alrededor de 0.7 segundos para select(). – seraphzero