2012-04-04 13 views
0

Also verwende ich HTTP-Post-Anfragen in Android Java, um sich auf einer Website anzumelden, bevor der gesamte HTML-Code extrahiert wird. Danach benutze ich Pattern/Matcher (regex), um alle Elemente zu finden, die ich brauche, bevor ich sie aus den HTML-Daten entziehe und alles unnötige lösche. Zum Beispiel, wenn ich extrahieren dies:Wird HTML analysiert (in Java/Android), um daraus Daten zu extrahieren, eine effektive Möglichkeit, den Inhalt einer Webseite zu erhalten?

String extractions = <td>Good day sir</td> 

Dann benutze ich:

extractions.replaceAll("<td>", "").replaceAll("</td>", ""); 

ich dies mehrere Male, bis ich alle Daten von diesem Standort benötigt haben, bevor ich sie in irgendeiner Art von Liste angezeigt werden .

Ich bin nicht besonders auf etwas fest, aber bitte, können Sie mir sagen, ob dies eine effektive/effiziente/schnelle Möglichkeit ist, Daten von einer Seite zu erhalten und zu verarbeiten, oder gibt es Möglichkeiten, dies schneller zu tun? Weil es manchmal so ist, als ob mein Programm eine Menge Zeit benötigt, um bestimmte Daten zu bekommen (obwohl das meistens der Fall ist, wenn ich mit meinem Handy auf 3G bin).

+1

Verwendung jsoup zum Parsen von HTML ... und über Daten ... Wenn es Ihre Website ist, erstellen Sie einen Webservice, um Daten zu erhalten ... wenn nicht, vielleicht hat diese Seite API (wie Facebook, Twitter, etc.), wenn nicht, können Sie auch Ihre API für diese Seite erstellen, indem Sie Webservice erstellen process Inhalt dieser Website und Sie werden nur auf verarbeitete Daten von Android zugreifen ... – Selvin

Antwort

0

Wie andere gesagt haben, regex ist nicht das beste Werkzeug für diesen Job. Aber in diesem Fall ist die besondere Art, wie Sie Regex verwenden, noch ineffizienter als es normalerweise wäre.

Lassen Sie mich in jedem Fall eine weitere mögliche Lösung anbieten (abhängig von Ihrem Anwendungsfall).

Es heißt YQL (Yahoo Query Language). http://developer.yahoo.com/yql/

Hier ist eine Konsole für Sie, damit Sie damit herumspielen können. http://developer.yahoo.com/yql/console/

YQL ist die faule Entwickler Möglichkeit, Ihre eigene API im laufenden Betrieb zu bauen. Die größte Unannehmlichkeit ist, dass Sie Yahoo als Vermittler verwenden müssen, aber wenn Sie damit einverstanden sind, würde ich vorschlagen, dass Sie diesen Weg gehen. Die Verwendung von YQL ist wahrscheinlich der schnellste Weg, um diese Art von Arbeit zu erledigen (vor allem, wenn der HTML-Code, auf den Sie ausgerichtet sind, sich ständig ändert und seine HTML-Tags nicht immer gültig sind).

0

Werfen Sie einen Blick auf die Apache Tika Bibliothek für Text aus HTML extrahieren - es gibt viele andere Parser auch zur Verfügung, wie PDF usw.: http://tika.apache.org/

Verwandte Themen