Verwenden Sie Such-Tweets: Vollständiges Archiv / Sandbox in Python

In Vorheriger Artikel habe ich Python für meine Abschlussarbeit gestartet und versucht, verschiedene Dinge mit der Twitter-API zu tun. Die Python-Geschichte beträgt keine 10 Tage mehr. Nun, ich habe meine Fähigkeiten nicht so sehr verbessert ...

Annahme: Werden alle Suchanfragen auf der offiziellen Twitter-Website angezeigt?

Am Ende wurde die Datenerfassung der Abschlussarbeit auf der offiziellen Twitter-Website durchsucht, die vollen Zugriff auf frühere Tweets hat. Primitiv ~.

Eine unangenehme Vorahnung, die mir dort den Kopf kreuzt.

** "Möglicherweise werden nicht alle Suchanfragen auf der offiziellen Twitter-Website angezeigt ...?" **

Sicherlich ist es nicht undenkbar, dass "je mehr vergangene Tweets vorhanden sind, desto geringer ist der Browsing-Bedarf, sodass die Suchergebnisse ausgedünnt werden". Es gibt keine quantitative Analyse oder Scheiße damit. Es ist eine Krise der Abschlussarbeit. (; ・ ∀ ・)

Suchspezifikationen auf der offiziellen Twitter-Website

Die Suche auf der offiziellen Twitter-Website (im Folgenden als Twitter-Suche bezeichnet) verfügt über mehrere Anzeigeformate für Suchergebnisse. 1.PNG Ein gemeinsamer Fokus ist der Unterschied zwischen "Themen-Tweets" und "Neuesten". (In der Vergangenheit gab es eine Zeit, in der "Themen-Tweets" als "Themen" und "Neueste" als "Alle Tweets" bezeichnet wurden.)

Laut der offiziellen Twitter-Ankündigung ("Häufig gestellte Fragen zu Suchergebnissen")

** Warum erscheint mein Lieblingstweet nicht in aktuellen Tweets? ** ** ** Themen-Tweets sind für Ihre Suche am relevantesten. Twitter verwendet eine Reihe von Faktoren, um die Relevanz zu bestimmen, einschließlich der Beliebtheit von Tweets (viele Menschen antworten und teilen diese über Retweets, Antworten usw.) und der darin enthaltenen Keywords. Wenn Ihr Lieblingstweet nicht im aktuellen Tweet angezeigt wird, bedeutet dies, dass der Tweet für Ihre Suche nicht sehr relevant ist. Klicken oder tippen Sie auf Alle Tweets (Neueste), um die neuesten Tweets anzuzeigen, die Ihren Suchbegriffen entsprechen.

Natürlich wurde bei dieser Datenerfassung auch die Registerkarte "Neueste" verwendet. Früher hieß es "alle Tweets", also dachte ich, dass alle Elemente angezeigt werden würden ... aber im Moment ist der Name "aktuell" und die offizielle Ankündigung lautet "alle Elemente werden angezeigt". Ich hatte keine klare Ankündigung: "Ich mache es."

Was ich diesmal gemacht habe

Aus diesem Grund habe ich mich für die kostenlose Testversion (Search Tweets: Full Archive / Sandbox) der Twitter-API entschieden, um zu überprüfen, ob alle Ergebnisse der Twitter-Suche angezeigt werden. Aufgrund der Begrenzung der Anzahl der Anfragen (50 Anfragen / Monat für Sandbox) ist eine quantitative Suche nicht möglich, aber es ist gut, wenn Sie mehrmals nach einer Bestätigung suchen können. Außerdem konnte ich keinen zusammenhängenden japanischen Artikel über Search Tweets: Full Archive / Sandbox finden, daher werde ich versuchen, ihn zusammenzufassen (obwohl er äußerst überwältigend ist). Das Abrufen eines Twitter-Entwicklerkontos wurde bereits abgeschlossen.

① Einstellung der Entwicklungsumgebung im Dashboard

Zunächst müssen Sie sich mit einem Entwicklerkonto anmelden und die Entwicklungsumgebung von Search Tweets: Full Archive / Sandbox über Dashboard einrichten. 2.PNG

3.png Das Dev-Umgebungsetikett (in diesem Fall "Entwicklung") wird später verwendet, und der App-Name muss mit dem für die Authentifizierung verwendeten Consumer-Schlüssel übereinstimmen.

② Der Punkt, der im Code gestolpert ist

Ich habe mich gefragt, ob der in der vorherigen kostenlosen Versionssuche verwendete Code so verwendet werden kann, wie er ist, aber zuerst musste ich die Endpunkt-URL neu schreiben ( Korrekt). Was mit der kostenlosen Version gut funktioniert hat  https://api.twitter.com/1.1/search/tweets.json Es war, aber diesmal  https://api.twitter.com/1.1/tweets/search/fullarchive/development.json ist geworden. (Natürlich gibt es eine Beschreibung in Referenz zu Such-Tweets: Premium-Such-APIs.) Wie oben erwähnt, ist in dieser URL auch die von Ihnen festgelegte Dev-Umgebungsbezeichnung enthalten. In diesem Fall ist es der "Entwicklungsteil". Bitte schreiben Sie es entsprechend Ihren eigenen Bedürfnissen um.

Ich weiß auch nicht warum, weil ich Analphabet bin, aber die Namen der verwendeten Parameter unterscheiden sich zwischen der Suche mit der Standardsuch-API und der Suche mit den Premium-Such-APIs. Es hat also nicht funktioniert, es sei denn, ich habe diesen Punkt aus dem in der kostenlosen Version verwendeten Code neu geschrieben. 5.PNG (Aus ↑ Tweets suchen: Standard-Such-API-Referenz) 4.PNG (↑ Suche nach Tweets: Referenz zu Premium-Such-APIs)

Der Name des Parameters, der die Suchabfrage enthält, lautet in der kostenlosen Version " q ", während er in den Premium-Such-APIs" query" lautet. Andere Parameter wurden beim Betrachten der Referenz neu geschrieben.

Es ist auch klar, aber der Name der internen Struktur von json, die ausgespuckt wird, ist auch ein wenig anders, also schreibe ich ihn neu.

③ Code

Da es auf dem vorherigen Code basiert, werde ich dies rezitieren, das die Basis des vorherigen Codes ist. Vielen Dank.

Spielen Sie mit der Twitter-API Nr. 3 (Suchergebnisse abrufen)

test.py


#! python3
# -*- coding: utf-8 -*-

import json
from requests_oauthlib import OAuth1Session

#OAuth-Authentifizierungsteil
CK      = 'Erhaltener Verbraucherschlüssel'
CS      = 'Erhaltenes Verbrauchergeheimnis'
AT      = 'Erhaltenes Zugriffstoken'
ATS     = 'Erhaltenes Zugriffstoken-Geheimnis'
twitter = OAuth1Session(CK, CS, AT, ATS)

# Twitter Endpoint(Suchergebnisse abrufen)
url = 'https://api.twitter.com/1.1/tweets/search/fullarchive/development.json'

#Parameter, die an Enedpoint übergeben werden sollen
keyword = '"Picmin"'

params ={
         'query' : keyword ,  #Suchbegriff
         'maxResults': 20 ,   #Anzahl der zu erhaltenden Tweets
         'fromDate' : 201301311500 ,
         'toDate' : 201302011500 
        }

req = twitter.get(url, params = params)

if req.status_code == 200:
    res = json.loads(req.text)
    for line in res['results']:
        print(line['text'])
        print('*******************************************')
else:
    print("Failed: %d" % req.status_code)

'fromDate' und' toDate' sind optionale Parameter, die jedoch in UTC angegeben sind. Es ist keine japanische Zeit.

④ Ergebnis

Das Ergebnis des Drehens dieses Codes und das Ergebnis der Suche ["Picmin" seit: 2013-02-01_00: 00: 00_JST bis: 2013-02-02_00: 00: 00_JST](https: // twitter) . 3A2013-02-02_00% 3A00% 3A00_JST & src = typed_query & f = live) Ich habe verglichen. 6.PNG Ich habe versucht, die in nur einem von ihnen angezeigten Tweets mit einem roten Rahmen zu versehen. In den API-Suchergebnissen werden nur Tweets angezeigt, die mit "RT @ XXXX:" beginnen. Ist es die offizielle RT zu dieser Zeit ...? Andererseits wurden einige Tweets von der API-Suche nicht angezeigt. Ich weiß nichts mehr darüber. Warum. Wenn Sie etwas wissen, würde ich es begrüßen, wenn Sie mich unterrichten könnten. (Vielleicht ist der Code schlecht, ich lasse den Code, der am Ende im Suchergebnis mit API als Double angezeigt wird, mit API)

Vielleicht kann ich eine Abschlussarbeit schreiben

Nun, ich weiß nicht, warum es Tweets gibt, die "nicht in API-Suchergebnissen, sondern in Twitter-Suchergebnissen erscheinen", aber die Suchergebnisse, die in "Neueste" in der Twitter-Suche erscheinen, sind Retweets. Es scheint, dass alles außer angezeigt wird (obwohl es möglich ist, dass einige Tweets nicht in beiden angezeigt werden ...). Daher denke ich, dass die quantitative Analyse basierend auf der Twitter-Suche eine gewisse Relevanz hat. Ich habe es geschafft, die Haut meines Halses zu verbinden, also werde ich mein Bestes geben, um meine Abschlussarbeit zu schreiben. (= ゜ ω ゜) Nein

Wenn Sie Informationen haben, würde ich mich freuen, wenn Sie mich wissen lassen könnten. Ich bin noch ein Anfänger, also weisen Sie bitte auf Punkte hin, die Sie nicht erreichen können.

Recommended Posts

Verwenden Sie Such-Tweets: Vollständiges Archiv / Sandbox in Python
Verwenden Sie config.ini mit Python
Verwenden Sie Datumsangaben in Python
Dichotomie mit Python
Verwenden Sie Valgrind mit Python
Python Bit vollständige Suche
Lineare Suche in Python
Verwenden Sie den Profiler in Python
Binäre Suche in Python
Mal sehen, wie def in Python verwendet wird
Verwenden Sie den let-Ausdruck in Python
Verwenden Sie das Messprotokoll mit Python
Verwenden Sie die Rückruffunktion in Python
Verwenden Sie den Parameterspeicher in Python
Verwenden Sie den HTTP-Cache in Python
Verwenden Sie Random Forest mit Python
Algorithmus in Python (Dichotomie)
Verwenden Sie Spyder von Python IDE
Vollbit-Suche mit Python
Suche nach Twitter-Tweets mit Python
Scraping von Google News-Suchergebnissen in Python (2) Verwenden Sie Beautiful Soup
Algorithmus in Python (Breitenprioritätssuche, bfs)
Schreiben Sie eine Dichotomie in Python
Verwenden Sie Stoff wie in Python (Stoff3)
Verwendung von SQLite in Python
Algorithmus in Python (Tiefenprioritätssuche, dfs)
Verwenden Sie rospy mit virtualenv in Python3
Wie man MySQL mit Python benutzt
Verwenden Sie Python in pyenv mit NeoVim
Verwendung von ChemSpider in Python
Verwenden Sie OpenCV mit Python 3 in Window
Lösen Sie Teilsummenprobleme mit der vollständigen Suche in Python
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Verwenden Sie print in Python2 lambda expression
Algorithmus in Python (ABC 146 C Dichotomie
Verwenden Sie einfach Ihre eigenen Funktionen in Python
Was tun, wenn Sie die Rastersuche von sklearn in Python nicht verwenden können?
Suchen und spielen Sie YouTube-Videos mit Python
Einfache Möglichkeit, Wikipedia mit Python zu verwenden
Auf der Suche nach dem schnellsten FizzBuzz in Python
Verwendung regulärer Ausdrücke in Python
Patch, wenn die Volltextsuche in der lokalen GAE / Python-Umgebung nicht funktioniert
Verwendung der Python-Bildbibliothek in der Python3-Serie
Zusammenfassung der Verwendung von MNIST mit Python
Verwenden Sie verschiedene Rabbimq-Funktionen mit Python Pika
Verwenden Sie in Ihrem Python keine readlines () für Anweisungen!
Wie man tkinter mit Python in Pyenv benutzt
Verwenden Sie jupyter-lab, das in einer virtuellen Python-Umgebung (venv) installiert ist.
Verwenden Sie Python in einer Anaconda-Umgebung mit VS-Code
Verwenden Sie eine benutzerdefinierte Fehlerseite mit Python / Tornado
Verwenden Sie Python im Docker-Container als Pycharm-Interpreter
Verwenden Sie die LibreOffice-App in Python (3) Bibliothek hinzufügen
Verwenden Sie pydantic beim Lesen von Umgebungsvariablen in Python
Verwenden Sie os.getenv, um Umgebungsvariablen in Python abzurufen
Quadtree in Python --2
Python in der Optimierung
CURL in Python