Verwenden Sie twitterscraper-ruby, um nach Tweets von vor einigen Jahren nach Datum zu suchen

Sie können die Twitter-Such-API verwenden, um auf Twitter nach Tweets zu suchen, aber Sie können nur nach den letzten 7 Tagen suchen **.

Verwenden Sie twitterscraper-rubin gem, um diese Einschränkung zu umgehen. twitterscraper-ruby kratzt Twitter direkt, sodass Sie ** jeden Tweet vom ersten Tag an, an dem Twitter startet **, durchsuchen können.

Anmerkung 1

twitterscraper-ruby kratzt Twitter direkt, aber die Nutzungsbedingungen von Twitter verbieten das Scraping. Verwenden Sie es nur für die persönliche kleine Tweet-Sammlung.

Anmerkung 2

Die Suchfunktion von Twitter deckt nicht alle Tweets ab. Darüber hinaus scheint es möglicherweise nicht möglich zu sein, gut nach japanischen Tweets zu suchen. Daher ist es nicht zum Sammeln aller Tweets geeignet.

Suche nach Tweets nach Datum

Vergleichen wir die Ergebnisse bei Verwendung von twitterscraper-ruby und bei Verwendung der Twitter-Such-API.

Bei Verwendung von Twitterscraper-Ruby

Ich werde versuchen, am 1. Januar 2020 bis zu 1000 Tweets zu erhalten.

Gemfile


gem 'twitterscraper-ruby'
require 'twitterscraper'

#Es gibt eine Proxy-Funktion, um die Möglichkeit zu verringern, dass die IP gesperrt wird.
#Stattdessen ist es viel langsamer, also schalte ich den Proxy aus
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

Ich habe genau 1000 Fälle. Ich habe andere Zahlen ausprobiert, aber es scheint, dass sie ein wenig überschreiten können.

Bei Verwendung der Twitter Search API (Twitter Gem)

Ich habe auch versucht, mithilfe der Twitter-Such-API Tweets mit demselben Datum abzurufen, konnte jedoch keine Tweets wie erwartet abrufen. Dies liegt daran, dass die Twitter-Such-API nur Tweets der letzten 7 Tage abrufen kann.

# 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

Referenzlink

Recommended Posts

Verwenden Sie twitterscraper-ruby, um nach Tweets von vor einigen Jahren nach Datum zu suchen
Verwenden Sie twitterscraper-ruby, um nach Tweets von vor einigen Jahren nach Datum zu suchen
Konvertieren Sie von ○ Monaten in ○ Jahre ○ Monate