Utilisez twitterscraper-ruby pour rechercher des tweets d'il y a quelques années par date

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.

Note 1

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.

Note 2

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.

Rechercher des tweets par date

Comparons les résultats lors de l'utilisation de twitterscraper-ruby et lors de l'utilisation de l'API Twitter Search.

Lors de l'utilisation de twitterscraper-ruby

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.

Lors de l'utilisation de l'API Twitter Search (twitter gem)

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

Lien de référence

Recommended Posts

Utilisez twitterscraper-ruby pour rechercher des tweets d'il y a quelques années par date
Utilisez twitterscraper-ruby pour rechercher des tweets d'il y a quelques années par date
Conversion de ○ mois en ○ années ○ mois