[PYTHON] Recevez de nombreux tweets Twitter à la fois

introduction

On suppose que vous pouvez utiliser l'API Twitter (désolé) Cet article s'adresse aux personnes qui souhaitent faire diverses choses à l'aide de tweets mais qui ont du mal à collecter des données.

Objectif

Si vous essayez de rechercher des tweets normalement en utilisant la recherche API de Twitter, vous ne pouvez obtenir que le top 100. Cependant, vous pouvez obtenir des tweets jusqu'à la semaine dernière en traçant l'ID attribué à chaque tweet. Voici le programme de recherche.

tweet_search.py


# -*- coding:utf-8 -*-
import tweepy

def search_tweet(api):
    print('Sortie des derniers tweets')
    print('Page de recherche: 1')
    tweet_data = api.search(q=' ', count=100)
    for tweet in tweet_data:
            print(tweet.text)
            print('************************************************\n')
    next_max_id = tweet_data[-1].id
    for i in range(2, 11):
        print('Page de recherche:' + str(i))
        tweet_data = api.search(q=' ', count=100, max_id=next_max_id-1)
        next_max_id = tweet_data[-1].id
        for tweet in tweet_data:
            print(tweet.text)
            print('************************************************\n')

if '__name__' == '__main__':
    consumer_key = "XXXXXXXXXXXXXXXXXXXXXXX"
    consumer_secret = "XXXXXXXXXXXXXXXXXXXXXXXX"
    access_token = "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    access_token_secret = "XXXXXXXXXXXXXXXXXXXXXXXXXX"
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)
    api = tweepy.API(auth)
    search_tweet(api)

Pour expliquer brièvement le mécanisme ・ L'ID de Tweet (tous les numéros) est toujours attribué à tous les tweets. -L'ID est plus grand pour le dernier tweet (par exemple, si l'ID du dernier tweet est 7000, l'ID du tweet précédent est 6999). ・ La recherche normale de l'API remonte aux tweets précédents dans l'ordre des derniers tweets. -Et la recherche API a un argument appelé max_id, et en spécifiant cet ID, vous ne pouvez rechercher que les tweets inférieurs à cette valeur.

En utilisant ces quatre points, le processus de «recherche à partir d'ID de tweet de 7 000 ou moins» devient possible.

En d'autres termes

  1. Recevez 100 tweets
  2. Enregistrez le 100e ID
  3. Recherchez à partir de l'ID sous la valeur (retournez à 1)

En répétant cela, vous pouvez continuer à passer indéfiniment les tweets! J'aimerais dire, mais malheureusement, l'API ne peut recevoir des tweets que dans une semaine, donc ce n'est pas infini. Cependant, le nombre de tweets pouvant être collectés est extrêmement important par rapport à l'utilisation normale de la recherche API.

c'est tout.

Recommended Posts

Recevez de nombreux tweets Twitter à la fois
Sortez de plusieurs boucles à la fois
Comment assembler de nombreux pipelines et les ranger en même temps
Obtenez le nombre de tweets liés à un certain mot-clé à l'aide de l'API Twitter
Obtenez UNIXTIME au début d'aujourd'hui avec une commande
J'ai créé un outil pour obtenir les liens de réponse d'OpenAI Gym en même temps
Recevez uniquement des tweets d'images sur Twitter
J'ai essayé de créer un script qui retrace les tweets d'un utilisateur spécifique sur Twitter et enregistre l'image publiée à la fois
Connectez beaucoup de Python ou et et
Supprimer les conteneurs inutiles de Docker à la fois
[Aux messieurs sur Twitter] J'ai écrit un script pour convertir immédiatement .jpg-large en .jpg.
[python] Obtenir une liste de variables d'instance
Obtenez tous les tweets en direct du baseball professionnel
Obtenez le nom de fichier du répertoire (glob)
Obtenez une instance datetime à tout moment de la journée en Python
[Python] Obtenir une liste de dossiers uniquement
Recevez beaucoup de vos tweets avec Tweepy
Obtenez immédiatement l'identifiant Google+ du membre AKB
J'ai refactoré "J'ai essayé de faire un script qui enregistre les images postées à la fois en retournant sur les tweets d'un utilisateur spécifique sur Twitter".
One-liner qui crée un grand nombre de fichiers de test à la fois sous Linux
[Rails] Mechanize consomme beaucoup de descripteurs de fichiers
Récupérer l'appelant d'une fonction en Python
Obtenir une liste d'utilisateurs IAM avec Boto3
Obtenez la liste "J'aime" de Qiita en grattant
Touchons une partie de l'apprentissage automatique avec Python
Obtenez une grande quantité de données Twitter de Starba avec python et essayez l'analyse de données Partie 1
J'ai isolé mon environnement avec virtualenv, mais je reçois beaucoup de paquets avec pip list
Aidez-vous à voir quelle monnaie virtuelle vous auriez dû acheter il y a une semaine chez Poloniex
Obtenir les données utilisateur Twitter
Faites une liste de latitude et de longitude et convertissez les coordonnées UTM à la fois → Sortie du fichier
Obtenez le numéro d'entreprise à la fois via gbizinfo avec python
Obtenez le nom de la variable sous forme de chaîne de caractères.
[GoLang] Définissez un espace au début du commentaire
Jetez un œil au traitement de LightGBM Tuner
Python qui fusionne beaucoup d'excellence en un seul Excel
Python + sélénium pour GW beaucoup de publicités par courrier électronique
Obtenez des tweets Twitter, des followers, des followers, des likes, avec urllib et beautifulSoup
Python: obtenir une liste de méthodes pour un objet
[Piyopiyokai # 1] Jouons avec Lambda: créez un compte Twitter
Tâches au démarrage d'un nouveau projet python
API Twitter: obtenez une liste des comptes que vous suivez mais qui ne sont pas suivis