Więc buduję aplikację, która wyświetla obraz z witryny, do której się udam, w bardziej przyjaznym dla użytkownika interfejsie. W tej chwili jest z tym wiele problemów, ale największym teraz jest pobieranie obrazów, aby je wyświetlić.Czy jest coś szybszego niż Jsoup do skrobania HTML?
Tak jak teraz, obrazy są wyświetlane w GridView wielkości 12, odzwierciedlając liczbę obrazów na każdej stronie tablicy. Używam Jsoup do zeskanowania strony dla adresów URL obrazków miniaturek wyświetlanych w GridView, a także do uzyskania adresów URL dla obrazów w pełnym rozmiarze wyświetlanych, gdy użytkownik kliknie miniaturę.
Problem polega na tym, że w przypadku Jsoup trwa średnio od 8 do 12 sekund, aby strona HTML została skradziona. Uważam, że jest to niedopuszczalne i zastanawiałem się, czy istnieje jakikolwiek sposób, aby uczynić to szybszym, lub jeśli to będzie nieodłączne wąskie gardło, na które nie mogę nic poradzić.
Oto kod używam aby pobrać stronę do skrobania:
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();
}
Dobrze rzeczą jest to, że planowane do get() połączenia, które jest gdzie dostałem 8-12 sekundowe opóźnienie. Ale przyjrzę się selektorowi. – seraphzero
Szybciej można wybrać wszystkie obrazy, a następnie przeglądać je ręcznie, wybierając odpowiednie obrazy. –
Uruchamiając więcej testów sprawdzających czas, jestem pewien, że to wywołanie get() trwa cały czas. W przypadku zwykłego projektu Java wywołanie metody get() trwa około 1-2 sekund, a wywołanie funkcji select() trwa około 0,05 sekundy. Uruchamianie tego samego kodu na emulatorze systemu Android, zajmuje wyżej wymienione 8-12 sekund dla get() i około 0,7 sekundy dla select(). – seraphzero