Scraping von Twitter-Daten mit Python [mit 2 APIs]

Veröffentlicht: 2020-11-30

Inhaltsverzeichnis

Einführung

Social-Media-Plattformen wie Twitter sind eines der großartigen Repositories zum Sammeln von Datensätzen. Die Arbeit an einem neuen Data-Science-Projekt erfordert eine beträchtliche Menge an Daten, das Sammeln des Datensatzes ist keine leichte Aufgabe.

Und Twitter bietet ein diversifiziertes Datengenre, da es sich um eine Sammlung von Tweets von Menschen mit unterschiedlichen Denkweisen und unterschiedlichen Gefühlen handelt. Ein solcher unvoreingenommener Datensatz ist eine dringend benötigte Voraussetzung für das Training eines neuen maschinellen Lernmodells.

Lass uns anfangen!

Wir werden 2 APIs für Twitter Data Scraping durchgehen.

  1. Tweepy
  2. Twint

Tweepy

Bevor wir mit dem Durchlaufen des Python-Codes zum Scraping von Daten mit der Tweepy-API beginnen, müssen Sie wissen, dass wir die Anmeldeinformationen eines Twitter-Entwicklerkontos benötigen, und es ist ein Kinderspiel, wenn Sie sie bereits haben.

Für diejenigen, die kein Entwicklerkonto haben, können Sie dieses hier beantragen . Und bevor Sie sich für ein Entwicklerkonto bewerben, müssen Sie ein Twitter-Konto haben. Die Beantragung eines Entwicklerkontos ist ein einfacher Vorgang und die Beantragung stellt einige grundlegende Fragen wie den Grund für die Beantragung usw. Und die Genehmigung des Entwicklerkontos dauert in der Regel 2-3 Tage.

Sobald Sie die Genehmigung für das Entwicklerkonto erhalten haben, notieren Sie sich Ihre Verbraucher-API-Schlüssel, das Zugriffstoken und das Zugriffstoken-Geheimnis aus dem Abschnitt „Schlüssel und Token“.

Beachten Sie auch, dass es für Tweepy nur wenige Einschränkungen gibt, z. B. können Sie nur Tweets kratzen, die nicht älter als eine Woche sind. Und ein Limit beim Scraping, bis zu 18000 Tweets in einem Zeitrahmen von 15 Minuten.

Großartig, jetzt, da wir Schlüssel und Token aus dem Entwicklerkonto haben, lassen Sie uns sie autorisieren.

Consumer_key = Ihr Verbraucherschlüssel

Consumer_secret = Ihr Verbrauchergeheimnis

access_token = Ihr Zugriffstoken

access_token_secret = Ihr Token-Geheimnis

Berechtigung = tweepy.OAuthHandler (Verbraucherschlüssel, Verbrauchergeheimnis)

authorisierung.set_access_token(access_token, access_token_secret)

api = tweepy.API(autorisierung,wait_on_rate_limit = True )

Nachdem wir uns nun mit unseren Anmeldeinformationen autorisiert haben, kratzen wir die Tweets eines bestimmten Kontos. Lassen Sie uns vorerst die Tweets von Mr. Sundar Pichai kratzen.

Benutzername = ' sundarpichai '

zählen = 100

versuchen :

#Linie 1

tweets_obj = tweepy.Cursor(api.user_timeline,id = Benutzername).items(count)

#Zeile 2

tweets_list = [[tweet.created_at, tweet.id, tweet.text] für Tweet in tweets_obj]

#line3

tweets_df = pd.DataFrame(tweets_list)

außer BaseException als e:

print ( ' etwas ist schief gelaufen, ' , str (e))

Im obigen Snippet erstellt line1 ein iterierbares Objekt mit allen Tweets und es wird einer Variablen „tweets_obj“ zugewiesen. Wenn wir mit dem Erstellen eines iterierbaren Objekts fertig sind, lassen Sie uns darüber iterieren und alle Daten extrahieren.

Wir extrahieren nur wenige Attribute wie „created_at“, „id“, „text“ und hängen sie an jeden Eintrag in einem 2D-Array an. Wo jeder Eintrag alle Daten jedes Tweets enthält, den wir gekratzt haben. Jetzt, da wir ein 2D-Array mit Attributen als jedem Eintrag haben, können wir es mit der Syntax „pd.DataFrame()“ in einen Datenrahmen konvertieren.

Der Grund für die Umwandlung eines Arrays in einen Datenrahmen ist mehr Flexibilität, die Verfügbarkeit vordefinierter Methoden und der einfache Zugriff heben es von allen Datenstrukturen für Data-Science-Projekte ab.

Lassen Sie uns auf ähnliche Weise einen Code zum Scraping von Daten mit einer bestimmten Textabfrage durchgehen.

text_query = ' vokal für lokal '

zählen = 100

versuchen :

#Linie 1

tweets_obj = tweepy.Cursor(api.search,q = text_query).items(count)

#Zeile 2

tweets_list = [[tweet.created_at, tweet.id, tweet.text] für Tweet in tweets_obj]

#line3

df = pd.DataFrame(tweets_list)

außer BaseException als e:

print ( ' etwas ist schief gelaufen, ' , str (e))

Im obigen Snippet ist alles gleich wie im vorherigen Snippet. Zuletzt haben wir einen Datenrahmen mit allen Tweets erstellt, die die Textabfrage „vocal for local“ enthalten.

Wenn Sie nach einem spezifischeren oder benutzerdefinierten Daten-Scraping suchen, z. B. das Hinzufügen weiterer Attribute wie die Anzahl der Retweets, die Anzahl der Favoriten usw., können wir unsere Syntax anpassen und andere von tweepy bereitgestellte Attribute extrahieren. Weitere Informationen zu anderen von tweepy angebotenen Attributen finden Sie in der Dokumentation .

Twint

Die Twint-API erfordert keine Entwicklerkonto-Anmeldeinformationen, Sie können Tweets einfach ohne Autorisierungsschlüssel kratzen. Außerdem hat Twint keine Einschränkungen wie die Anzahl der Tweets, Zeitrahmen, Scraping-Limits usw. Twint bietet Ihnen ein nahtloses Daten-Scraping und eine einfach zu bedienende API.

Wir können die Liste der Follower einer Person mit ihrem Benutzernamen aus der Twint-API ausdrucken.

t_obj = twint.Config()

t_obj.Username = sundarpichai

twint.run.Followers(t_obj)

Im obigen Snippet konfiguriert twint.Config() die Twint-API und bringt die Dinge zum Laufen. Und nachdem wir ein Objekt zugewiesen haben, können wir diese Referenz für unsere Arbeit verwenden, „t_obj.Username“ weist den Benutzernamen zu, den wir eingegeben haben. Und twint.run.Followers führt eine Suche nach allen Followern dieses Benutzernamens durch.

Wir können die gekratzten Daten auch in einem Datenrahmen ähnlich der Tweepy-API speichern.

t_obj.Limit = 100

t_obj.Username = sundarpichai

t_obj.Pandas = Wahr

twint.run.Followers(t_obj)

result_df = twint.storage.panda.User_df

Alles im Snippet ist fast das gleiche wie im vorherigen Snippet, nur mit einer zusätzlichen Syntaxzeile „twint.storage.panda.User_df“, die die geschabten Daten in einen Datenrahmen umwandelt. Der Ergebnisdatenrahmen besteht aus einer Liste von Followern des angegebenen Benutzernamens.

Nachdem wir nun gesehen haben, wie die Follower-Daten eines bestimmten Benutzernamens gescrapt werden, lassen Sie uns den Code zum Scrapen von Tweets eines bestimmten Kontos durchgehen.

t_obj.Search = von:@sundarpichai

t_obj.Store_object = Wahr

t_obj.Limit = 20

twint.run.Search(t_obj)

Tweets = t.search_tweet_list

drucken (Tweets)

Im obigen Snippet machen wir das konfigurierte Objekt, um Tweets einer bestimmten Person zu durchsuchen, wir können auch das Limit von Tweets beim Scrapen mit der Syntax „t_obj.Limit“ festlegen. Und nachdem die Suche ausgeführt wurde, erstellt sie eine Liste aller Tweets und wir können sie je nach Bedarf einer lokalen Variablen zuweisen.

Nachdem Sie die Snippets von Scraping-Informationen eines bestimmten Kontos gesehen haben, haben Sie vielleicht eine kurze Frage, wie man Tweets mit einem bestimmten Schlüsselwort scrapt?. Kein Problem twint hat dafür eine Lösung.

t_obj.Search = Datenwissenschaft

t_obj.Store_object = Wahr

t_obj.Limit = 100

twint.run.Search(t_obj)

Tweets = t.search_tweet_list

drucken (Tweets)

Das obige Snippet ist dasselbe wie das Snippet zum Scrapen von Tweets von einem bestimmten Konto, mit einem einzigen Unterschied in Zeile1. Wir können es auch nach Belieben in einen Datenrahmen konvertieren.

Weitere Informationen zur Twint-API finden Sie in deren Repository und Dokumentation .

Fazit

Wir haben verstanden, wie wichtig es ist, die Daten zu kratzen. Zwei APIs und ihre Funktionen zum Scrapen von Twitter-Daten durchgegangen. Wir haben einige Methoden zum Konvertieren der gekratzten Daten in unser erforderliches Dateiformat gesehen. Jetzt, da Sie sich dieser APIs bewusst sind, beginnen Sie mit dem Scraping von Daten für Ihre Data-Science-Projekte!

Wir von upGrad helfen Ihnen gerne und möchten Sie auch über die Möglichkeiten informieren, die Sie durch das Erlernen von Python haben können. Python wurde ausgiebig für maschinelles Lernen und Data Science verwendet, zwei der beliebtesten und aufstrebenden Technologien. Wenn Sie Python lernen und sich auch mit diesen Fähigkeiten auskennen, werden Sie sich in Ihrem Bereich auszeichnen und bessere Karrieremöglichkeiten erhalten.

Wir haben viele Kurse entwickelt, die zusammen mit Branchenexperten und erstklassigen akademischen Instituten entwickelt wurden, um Ihnen alle Fähigkeiten zu vermitteln, die Sie benötigen, um sich in diesem Bereich hervorzuheben. Einige der Kurse, die Ihnen helfen können, Ihr Python-Wissen zu nutzen und Ihre Karriereaussichten zu verbessern:

Datenwissenschaft:

Schauen Sie sich die mit IIIT-B entwickelten Online-Data-Science-Programme von upGrad an . Es handelt sich um einen vollwertigen Data-Science-Kurs, um in diesen Bereich einzusteigen und sich mit Ihrem Wissen in der Branche einen Namen zu machen.

Master of Science in Data Science : Entwickelt in Zusammenarbeit mit der Liverpool John Moores University und dem IIIT-B, erhielt einen Master-Abschluss in Data Science von einer der besten Universitäten der Welt.

Maschinelles Lernen:

Vorabzertifizierung für maschinelles Lernen und KI : IIT Madras, eine der besten Bildungseinrichtungen Indiens, hat sich mit upGrad zusammengetan, um einen fortgeschrittenen Kurs über maschinelles Lernen zu erstellen, damit Einzelpersonen mit diesem Kurs vollständige Kenntnisse über maschinelles Lernen erwerben können.

Master of Science in maschinellem Lernen und KI : Die Liverpool John Moores University und IIIT-B haben sich mit upGrad zusammengetan, um vollständige Master of Science-Abschlüsse für Einzelpersonen bereitzustellen, um die Technologie im Detail zu lernen und einen formalen Abschluss in dieser Technologie zu erhalten, um erfolgreich zu sein Weg in diesem Bereich.

PG-Diplom für maschinelles Lernen und KI : IIIT-B und upGrad kamen zusammen, um Einzelpersonen die Möglichkeit zu geben, einen 12-monatigen Kurs über maschinelles Lernen und KI zu absolvieren und mit diesem Kurs in diese Technologie einzusteigen.

Was ist das Scraping von Daten?

Data Scraping bezieht sich auf einen Prozess, bei dem eine Computersoftware Daten aus einer Ausgabe löscht, die von einem anderen Programm erstellt wurde. Web Scraping ist eine Art von Data Scraping, das verwendet wird, um Daten oder Informationen von verschiedenen Websites zu sammeln. Beim Web Scraping wird eine Anwendung verwendet, um wertvolle Informationen von einer Website zu sammeln. Das Web-Scraping-Programm kann unter Verwendung von HTML (Hypertext Transfer Protocol) oder eines Webbrowsers schnell und einfach auf das WWW (World Wide Web) zugreifen.

Warum ist Data Scraping auf Twitter notwendig?

Data Scraping auf Social Media hilft dabei, die auf den Plattformen verfügbaren Daten zu verfolgen, auszuwerten und zu prüfen. Twitter ist die beliebteste Plattform, und das Scrapen von Twitter-Daten hilft Benutzern, das Benutzerverhalten, die Wettbewerbsstrategie und die Stimmungsanalyse zu analysieren und über die Tweets von Personen, Kollegen und Unternehmen auf dem Laufenden zu bleiben, was auf dem weltweit beliebtesten sozialen Kanal passiert wichtig für dich. Der Daten-Scraping-Service von Twitter erledigt Ihre End-to-End-Anforderungen in kürzester Zeit und liefert Ihnen die erforderlichen Daten. Twitter zum Beispiel erlaubt Crawlern nur, Daten über seine API zu sammeln, um die Menge an Informationen über ihre Benutzer und ihre Aktivitäten einzuschränken.

Was sind APIs?

Anwendungsprogrammierschnittstellen sind die winzigen Code-Bits, die es digitalen Geräten, Softwareprogrammen und Datenservern ermöglichen, miteinander zu kommunizieren, und sie sind das entscheidende Rückgrat vieler Dienste, auf die wir uns derzeit verlassen. Eine API verbindet Computer oder Software miteinander, im Gegensatz zu einer Benutzerschnittstelle, die einen Computer mit einem Menschen verbindet. Es ist nicht für die direkte Nutzung durch andere Personen (den Endbenutzer) als einen Computerprogrammierer bestimmt, der es in die Software integriert. Eine API besteht häufig aus vielen Komponenten, die dem Programmierer als Werkzeuge oder Dienste dienen.