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 ...
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. (; ・ ∀ ・)
Die Suche auf der offiziellen Twitter-Website (im Folgenden als Twitter-Suche bezeichnet) verfügt über mehrere Anzeigeformate für Suchergebnisse. 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."
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.
Zunächst müssen Sie sich mit einem Entwicklerkonto anmelden und die Entwicklungsumgebung von Search Tweets: Full Archive / Sandbox über Dashboard einrichten.
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.
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. (Aus ↑ Tweets suchen: Standard-Such-API-Referenz) (↑ 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.
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.
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. 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)
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