Article précédent J'ai commencé Python pour ma thèse de fin d'études et j'ai essayé de faire diverses choses avec l'API Twitter. L'histoire de Python n'est plus de 10 jours. Eh bien, je n'ai pas tellement amélioré mes compétences ...
En fin de compte, la collecte de données de thèse de fin d'études a été une recherche sur le site Web officiel de Twitter, qui a un accès complet aux tweets précédents. Primitif ~. Eh bien, je prenais le nombre de données de cette façon, mais à mesure que je remonterai dans le temps, le nombre de résultats de recherche pour ce mot-clé diminuera ** plus que prévu.
Une prémonition désagréable qui me traverse la tête là-bas.
** "Peut-être que toutes les recherches sur le site officiel de Twitter ne sont pas affichées ...?" **
Certes, il n'est pas impensable que "plus il y a de tweets passés, moins les besoins de navigation sont faibles, donc les résultats de la recherche seront éclaircis". Il n'y a pas d'analyse quantitative ou de merde avec ça. C'est une crise de thèse de fin d'études. (; ・ ∀ ・)
La recherche sur le site officiel de Twitter (ci-après dénommée recherche Twitter) comporte plusieurs formats d'affichage des résultats de recherche. Un objectif commun est la différence entre les «tweets de sujets» et les «derniers». (Dans le passé, il fut un temps où les «tweets de sujet» étaient appelés «sujets» et «les derniers» était appelé «tous les tweets».)
Selon l'annonce officielle de Twitter ("Foire aux questions sur les résultats de recherche")
** Pourquoi mon tweet préféré n'apparaît-il pas dans les tweets d'actualité? ** ** Les tweets thématiques sont les plus pertinents pour votre recherche. Twitter utilise un certain nombre de facteurs pour déterminer la pertinence, y compris la popularité des tweets (de nombreuses personnes répondent et partagent via des retweets, des réponses, etc.) et les mots-clés qu'ils contiennent. Si votre tweet préféré n'apparaît pas dans le tweet d'actualité, cela signifie que le tweet n'est pas très pertinent pour votre recherche. Cliquez ou appuyez sur Tous les tweets (Derniers) pour voir les tweets récents qui correspondent à vos termes de recherche.
Bien entendu, cette acquisition de données utilisait également l'onglet «dernier». Il s'appelait autrefois "tous les tweets", alors j'ai pensé que tous les éléments seraient affichés ... mais pour le moment, le nom est "dernier" et l'annonce officielle dit "tous les éléments sont affichés". Je n'ai pas eu d'annonce claire disant: «Je le fais».
Par conséquent, j'ai décidé d'utiliser la version d'essai gratuite (Search Tweets: Full Archive / Sandbox) de l'API Twitter pour vérifier que tous les résultats de la recherche Twitter sont affichés. En raison de la limite du nombre de requêtes (50 requêtes / mois pour Sandbox), la recherche quantitative n'est pas possible, mais c'est bien si vous pouvez rechercher plusieurs fois pour vérification. De plus, je n'ai pas trouvé d'article japonais cohérent sur Search Tweets: Full Archive / Sandbox, alors je vais essayer de le résumer (même si c'est extrêmement écrasant). L'obtention d'un compte de développeur Twitter est déjà terminée.
Tout d'abord, il semble que vous deviez vous connecter avec un compte développeur et configurer l'environnement de développement de Search Tweets: Full Archive / Sandbox from Dashboard.
Dans la figure ci-dessus, rien ne s'affiche car les paramètres sont déjà terminés, mais dans l'état initial, «Vous devez d'abord configurer un environnement de développement avant d'accéder à un point de terminaison et de visualiser l'utilisation.» S'affiche en bas. Je suis. Cliquez sur "configurer un environnement de développement" et définissez le "label d'environnement de développement" et quelle application utiliser Search Tweets: Archive complète / Sandbox.
L'étiquette d'environnement Dev (development
dans ce cas) sera utilisée plus tard, et le nom de l'application doit être le même que la clé du consommateur utilisée pour l'authentification.
Je me demandais si le code utilisé dans la recherche de la version gratuite précédente pouvait être utilisé tel quel, mais j'ai d'abord dû réécrire l'URL du point de terminaison ( C'est vrai).
Ce qui a bien fonctionné avec la version gratuite
https://api.twitter.com/1.1/search/tweets.json
C'était, mais cette fois
https://api.twitter.com/1.1/tweets/search/fullarchive/development.json
est devenu. (Bien sûr, il est décrit dans Search Tweets: Premium search APIs Reference.)
Comme mentionné ci-dessus, l'étiquette d'environnement de développement que vous avez définie est également incluse dans cette URL. Dans ce cas, il s'agit de la partie «développement». Veuillez le réécrire selon vos propres besoins.
De plus, je ne sais pas pourquoi car je suis analphabète, mais les noms des paramètres utilisés sont différents entre la recherche avec l'API de recherche standard et la recherche avec les API de recherche Premium. Donc, cela ne fonctionnait que si je réécrivais ce point à partir du code utilisé dans la version gratuite. (De ↑ Search Tweets: Standard Search API Reference) (↑ Search Tweets: Premium Search APIs Reference)
Le nom du paramètre qui contient la requête de recherche est " q
"dans la version gratuite, alors qu'il est" query
" dans les API de recherche Premium.
D'autres paramètres ont été réécrits en regardant la référence.
C'est également clair, mais le nom de la structure interne de json qui est craché est également un peu différent, donc je le réécris.
Puisqu'il est basé sur le code précédent, je vais le réciter qui est la base du code précédent. Merci beaucoup.
Jouer avec l'API Twitter # 3 (obtenir les résultats de la recherche)
test.py
#! python3
# -*- coding: utf-8 -*-
import json
from requests_oauthlib import OAuth1Session
#Partie authentification OAuth
CK = 'Obtention de la clé du consommateur'
CS = 'Obtenu le secret du consommateur'
AT = 'Jeton d'accès obtenu'
ATS = 'Obtention du secret du jeton d'accès'
twitter = OAuth1Session(CK, CS, AT, ATS)
# Twitter Endpoint(Obtenez des résultats de recherche)
url = 'https://api.twitter.com/1.1/tweets/search/fullarchive/development.json'
#Paramètres à transmettre à Enedpoint
keyword = '"Picmin"'
params ={
'query' : keyword , #Mot-clé de recherche
'maxResults': 20 , #Nombre de tweets à obtenir
'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 '' et
toDate '' sont des paramètres facultatifs, mais ils sont spécifiés en UTC. Ce n'est pas l'heure du Japon.
Le résultat de la rotation de ce code et le résultat de la recherche ["Picmin" depuis: 2013-02-01_00: 00: 00_JST jusqu'au: 2013-02-02_00: 00: 00_JST](https: // twitter) .com / search? q =% 22% E3% 83% 94% E3% 82% AF% E3% 83% 9F% E3% 83% B3% 22% 20 depuis% 3A2013-02-01_00% 3A00% 3A00_JST% 20 jusqu'à% 3A2013-02-02_00% 3A00% 3A00_JST & src = typed_query & f = live) J'ai comparé. J'ai essayé de placer les tweets affichés dans un seul d'entre eux avec un cadre rouge. Seuls les tweets commençant par "RT @ XXXX:" sont affichés dans les résultats de recherche API. Est-ce la RT officielle à ce moment-là ...? En revanche, certains tweets n'étaient pas affichés par la recherche API. Je n'en sais plus rien. Pourquoi. Si vous savez quelque chose, je vous serais reconnaissant si vous pouviez m'apprendre. (Peut-être que le code est mauvais, je laisse celui qui s'affiche en double à la fin dans le résultat de la recherche avec l'API)
Eh bien, je ne sais pas pourquoi il y a des tweets qui "n'apparaissent pas dans les résultats de recherche API mais apparaissent dans les résultats de recherche Twitter", mais les résultats de recherche qui apparaissent dans "derniers" dans la recherche Twitter sont des retweets. Il semble que tout sauf est affiché (bien qu'il soit possible que certains tweets ne soient pas affichés dans les deux ...). Donc, je pense que l'analyse quantitative basée sur la recherche Twitter a une certaine pertinence. J'ai réussi à connecter la peau de mon cou, donc je ferai de mon mieux pour rédiger ma thèse de fin d'études. (= ゜ ω ゜) Non
Si vous avez des informations, je vous serais reconnaissant de bien vouloir me le faire savoir. Je suis encore un débutant, veuillez donc signaler tous les points que vous ne pouvez pas atteindre.
Recommended Posts