Also baue ich eine App, die ein Bildboard von einer Website anzeigt, auf die ich in einer benutzerfreundlicheren Schnittstelle gehe. Im Moment gibt es eine Menge Probleme, aber die größte ist, die Bilder zu holen, um sie anzuzeigen.Gibt es etwas schneller als Jsoup für HTML-Scraping?
Wie ich es gerade habe, werden die Bilder in einer GridView der Größe 12 angezeigt, die die Anzahl der Bilder auf jeder Seite des Bildbretts widerspiegelt. Ich verwende Jsoup, um die Seite nach den Miniaturbild-URLs zu scrappen, die im GridView angezeigt werden, und um die URLs für die Bilder in voller Größe anzuzeigen, wenn ein Benutzer auf das Miniaturbild klickt.
Das Problem ist im Moment, dass Jsoup durchschnittlich 8-12 Sekunden braucht, um die HTML-Seite zu scrappen. Das halte ich für inakzeptabel und ich fragte mich, ob es irgendeinen Weg gab, dies schneller zu machen, oder ob dies ein innewohnender Engpass sein würde, gegen den ich nichts tun konnte.
Hier ist der Code, den ich mit der Seite holen zu kratzen:
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();
}
jsoup verlangsamt Nun, die Sache ist, dass ich die get() Aufruf timed das ist wo ich die 8-12 Sekunden Verzögerung bekam. Ich werde jedoch einen Blick in den Selektor werfen. – seraphzero
Es kann schneller sein, alle Bilder auszuwählen und sie dann manuell zu durchlaufen, indem Sie die richtigen Bilder auswählen. –
Ich führe mehr Timing-Tests aus und bin mir sicher, dass es der Aufruf get() ist, der die ganze Zeit in Anspruch nimmt. Bei einem normalen Java-Projekt dauert der Aufruf von get() ungefähr 1-2 Sekunden und der select() -Aufruf ungefähr 0,05 Sekunden. Das Ausführen des gleichen Codes auf dem Android-Emulator dauert die zuvor genannten 8-12 Sekunden für Get() und ca. 0,7 Sekunden für Select(). – seraphzero