Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision |
lehre:ss12:v_mmisdb [11.09.2012 08:24] – Alexander Bazo | lehre:ss12:v_mmisdb [11.09.2012 08:27] – Alexander Bazo |
---|
**Grundsätzliches zum Crawlen von Tweets** | **Grundsätzliches zum Crawlen von Tweets** |
| |
Twitter bietet großartige Möglichkeiten schnell und einfach an große Menge strukturierter, von Nutzern generierter Inhalte zu gelangen. Zu beachten sind bei der automatischen Verarbeitung von Tweets aber immer auch die [[https://dev.twitter.com/terms/api-terms|Developer Rules of the Road]] in denen Twitter festlegt, wer zu welchem Zweck und in welchem Umfang das API nutzen darf, eine kurze Zusammenfassung stellt Twitter [[https://dev.twitter.com/docs/terms/summary|hier]] zur Verfügung. Generell sollte es vermieden werden, Tweets zu crawlen, zu speichern und dann unabhängig vom eigentlichen Twitter-Service (kommerziell) zu veröffentlichen. Über das Online-Interface der Twitter Developer Page besteht die Möglichkeit, die meisten Funktionen des API (des [[https://dev.twitter.com/docs/api/1.1|Twitter REST PI]] zu nutzen, in dem über das ''OAuth tool'' ein String generiert wird, der über [[http://de.wikipedia.org/wiki/CURL|cURL]] genutzt werden kann. Auch damit ist crawlen möglich, für komplexere Anwendungen und die direkte Verarbeitung der gecrawlten Tweets empfiehlt sich die Nutzung einer der Programm-Bibliotheken, die Twitter für verschiedenen Programmier- und Skriptsprachen zugänglich machen. Für Java existiert beispielsweise [[http://twitter4j.org/en/index.html|twitter4j]]. | Twitter bietet großartige Möglichkeiten schnell und einfach an große Menge strukturierter, von Nutzern generierter Inhalte zu gelangen. Zu beachten sind bei der automatischen Verarbeitung von Tweets aber immer auch die [[https://dev.twitter.com/terms/api-terms|Developer Rules of the Road]] in denen Twitter festlegt, wer zu welchem Zweck und in welchem Umfang das API nutzen darf, eine kurze Zusammenfassung stellt Twitter [[https://dev.twitter.com/docs/terms/summary|hier]] zur Verfügung. Generell sollte es vermieden werden, Tweets zu crawlen, zu speichern und dann unabhängig vom eigentlichen Twitter-Service (kommerziell) zu veröffentlichen. Über das Online-Interface der Twitter Developer Page besteht die Möglichkeit, die meisten Funktionen des API (des [[https://dev.twitter.com/docs/api/1.1|Twitter REST PI]]) zu nutzen, in dem über das ''OAuth tool'' ein String generiert wird, der über [[http://de.wikipedia.org/wiki/CURL|cURL]] genutzt werden kann. Auch damit ist crawlen möglich, für komplexere Anwendungen und die direkte Verarbeitung der gecrawlten Tweets empfiehlt sich die Nutzung einer der Programm-Bibliotheken, die Twitter für verschiedenen Programmier- und Skriptsprachen zugänglich machen. Für Java existiert beispielsweise [[http://twitter4j.org/en/index.html|twitter4j]]. |
| |
**Crawlen mit Java & twitter4j** | **Crawlen mit Java & twitter4j** |
| |
**Access/Consumer Token und Keys** | **Access/Consumer Token und Keys** |
<code> | <code java> |
private static final String CONSUMER_KEY = "1337"; | private static final String CONSUMER_KEY = "1337"; |
private static final String CONSUMER_SECRET = "1337"; | private static final String CONSUMER_SECRET = "1337"; |
Im ''ConfigurationBuilder'' werden die speziellen Token und Keys gespeichert um die Application gegenüber des Twitter API eindeutig zu identifizieren. Nur mit gültigen Token ist eine Validierung der Anfragen am Twitter-Server möglich. | Im ''ConfigurationBuilder'' werden die speziellen Token und Keys gespeichert um die Application gegenüber des Twitter API eindeutig zu identifizieren. Nur mit gültigen Token ist eine Validierung der Anfragen am Twitter-Server möglich. |
| |
<code> | <code java> |
private StatusListener listener; | private StatusListener listener; |
private TwitterStream twitterStream; | private TwitterStream twitterStream; |
**Implementierung eines möglichen ''StatusListener''** | **Implementierung eines möglichen ''StatusListener''** |
Ein möglicher ''StatusListener'' implementiert das Basis-Interface ''twitter4j.StatusListener''. Bei den zu implementierenden Methoden handelt es sich um Call-Backs, die zur Laufzeit automatisch aufgerufen werden, wenn beispielsweise ein neuer Tweet empfangen wird (''onStatus(Status status)''). Das ''Status''-Objekt kapselt den empfangenen Tweet. Über entsprechende Getter-Methoden können alle relevanten Informationen ausgelesen werden und dann beispielsweise in einer Datenbank gespeichert werden. | Ein möglicher ''StatusListener'' implementiert das Basis-Interface ''twitter4j.StatusListener''. Bei den zu implementierenden Methoden handelt es sich um Call-Backs, die zur Laufzeit automatisch aufgerufen werden, wenn beispielsweise ein neuer Tweet empfangen wird (''onStatus(Status status)''). Das ''Status''-Objekt kapselt den empfangenen Tweet. Über entsprechende Getter-Methoden können alle relevanten Informationen ausgelesen werden und dann beispielsweise in einer Datenbank gespeichert werden. |
<code> | <code java> |
public class StatusListener implements twitter4j.StatusListener{ | public class StatusListener implements twitter4j.StatusListener{ |
| |
| |
**Erzeugen des Listeners sowie eines ''TwitterStream''-Objektes und zuweisen der Konfiguration und Verknüpfung von Listener und Stream** | **Erzeugen des Listeners sowie eines ''TwitterStream''-Objektes und zuweisen der Konfiguration und Verknüpfung von Listener und Stream** |
<code> | <code java> |
listener = new StatusListener(); | listener = new StatusListener(); |
twitterStream = new TwitterStreamFactory(config.build()).getInstance(); | twitterStream = new TwitterStreamFactory(config.build()).getInstance(); |