Vous pouvez utiliser l'API Twitter Search pour rechercher des tweets sur Twitter, mais vous ne pouvez rechercher que les 7 derniers jours **.
Pour contourner cette limitation, essayez d'utiliser twitterscraper-ruby gem. twitterscraper-ruby gratte Twitter directement, vous pouvez donc rechercher ** n'importe quel tweet dès le premier jour où Twitter commence.
twitterscraper-ruby gratte Twitter directement, mais les conditions d'utilisation de Twitter interdisent le grattage. Utilisez-le uniquement pour une petite collection de tweets personnels.
La fonction de recherche de Twitter ne couvre pas tous les tweets. De plus, il semble qu'il ne soit pas possible de bien rechercher les tweets japonais. Par conséquent, il ne convient pas pour collecter tous les tweets.
Comparons les résultats lors de l'utilisation de twitterscraper-ruby et lors de l'utilisation de l'API Twitter Search.
J'essaierai de recevoir jusqu'à 1000 tweets le 1er janvier 2020.
Gemfile
gem 'twitterscraper-ruby'
require 'twitterscraper'
#Il existe une fonction proxy pour réduire la possibilité que l'adresse IP soit bannie,
#Au lieu de cela, c'est beaucoup plus lent, donc je désactive le proxy
client = Twitterscraper::Client.new(proxy: false)
tweets = client.query_tweets('Twitter', start_date: '2020-01-01', end_date: '2020-01-02', lang: 'ja', limit: 1000)
puts tweets.size
# => 1000
tweets.take(3).each { |t| puts t.created_at }
# => 2020-01-01 23:59:59 +0000
# => 2020-01-01 23:59:59 +0000
# => 2020-01-01 23:59:59 +0000
J'ai exactement 1000 caisses. J'ai essayé d'autres chiffres, mais il semble qu'ils dépassent un peu.
J'ai également essayé d'obtenir des tweets avec la même date en utilisant l'API Twitter Search, mais je n'ai pas pu obtenir de tweets comme prévu. En effet, l'API Twitter Search ne peut récupérer que les tweets des 7 derniers jours.
# https://github.com/sferik/twitter
client = Twitter::REST::Client.new
tweets = client.search('Twitter since:2020-01-01 until:2020-01-02', count: 100)
puts tweets.size
# => 0