Utilisez Search Tweets: Archive complète / Sandbox en Python

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 ...

Hypothèse: toutes les recherches sur le site officiel de Twitter sont-elles affichées?

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. (; ・ ∀ ・)

Rechercher les spécifications sur le site officiel de Twitter

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. 1.PNG 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».

Ce que j'ai fait cette fois

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.

① Configuration de l'environnement de développement sur le tableau de bord

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. 2.PNG 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. 3.png 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.

② Le point qui a trébuché dans le code

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. 5.PNG (De ↑ Search Tweets: Standard Search API Reference) 4.PNG (↑ 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.

③ Code

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.

④ Résultat

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é. 6.PNG 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)

Peut-être que je peux écrire une thèse de fin d'études

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

Utilisez Search Tweets: Archive complète / Sandbox en Python
Utilisez config.ini avec Python
Utiliser des dates en Python
Dichotomie avec Python
Utiliser Valgrind avec Python
recherche complète de bits python
Recherche linéaire en Python
Utiliser le profileur en Python
Recherche binaire en Python
Voyons comment utiliser def en python
Utiliser l'expression let en Python
Utiliser le protocole de mesure avec Python
Utiliser la fonction de rappel en Python
Utiliser le magasin de paramètres en Python
Utiliser le cache HTTP en Python
Utilisez l'ODM de MongoDB avec Python
Utiliser Random Forest avec Python
Algorithme en Python (dichotomie)
Utilisez Spyder de Python IDE
Recherche de bits complète avec Python
Rechercher des tweets Twitter avec Python
Gratter les résultats de recherche de Google Actualités en Python (2) Utiliser Beautiful Soup
Algorithme en Python (recherche de priorité de largeur, bfs)
Ecrire une dichotomie en Python
Utilisez le tissu tel quel en python (fabric3)
Comment utiliser SQLite en Python
Algorithme en Python (recherche de priorité en profondeur, dfs)
Utiliser rospy avec virtualenv dans Python3
Comment utiliser Mysql avec python
Utiliser Python mis en pyenv avec NeoVim
Comment utiliser ChemSpider en Python
Utiliser OpenCV avec Python 3 dans Window
Résolvez les problèmes de somme partielle avec une recherche complète en Python
[Introduction à Python] Comment utiliser la classe en Python?
Utiliser l'impression dans l'expression lambda Python2
Algorithme en Python (ABC 146 C Dichotomy
Utilisez facilement vos propres fonctions en Python
Que faire si vous ne pouvez pas utiliser la recherche de grille de sklearn en Python
Rechercher et lire des vidéos YouTube avec Python
Un moyen simple d'utiliser Wikipedia avec Python
À la recherche du FizzBuzz le plus rapide en Python
Comment utiliser les expressions régulières en Python
Correctif lorsque la recherche de texte intégral ne fonctionne pas dans l'environnement local GAE / Python
Comment utiliser la bibliothèque d'images Python dans la série python3
Résumé de l'utilisation de MNIST avec Python
Utilisez diverses fonctionnalités de rabbimq avec python pika
N'utilisez pas readlines () dans votre instruction Python for!
Comment utiliser tkinter avec python dans pyenv
Utiliser jupyter-lab installé dans l'environnement virtuel python (venv)
Utiliser Python dans un environnement Anaconda avec VS Code
Utilisez une page d'erreur personnalisée avec python / tornado
Utiliser python dans le conteneur Docker comme interpréteur Pycharm
Utilisez l'application LibreOffice en Python (3) Ajouter une bibliothèque
Utilisez pydantic lors de la lecture des variables d'environnement en Python
Utilisez os.getenv pour obtenir des variables d'environnement en Python
Quadtree en Python --2
Python en optimisation
CURL en Python