Очистка: невозможно получить JSON с помощью Twitter API
Моя цель - использовать API Twitter для получения всех твитов, опубликованных в период с 1 января 2016 года по настоящее время.
Сначала я попробовал searchTwitter()
метод из twitteR
пакет, но обнаружил, что существует ограничение скорости, поэтому, например, когда я ввожу:
> tweets <- searchTwitter("from:@BernieSanders", n=1000, lang="en", since="2016-01-01")
Warning message:
In doRppAPICall("search/tweets", n, params = params, retryOnRateLimit = retryOnRateLimit, :
1000 tweets were requested but the API can only return 75
API ограничивает количество твитов, которые могут быть получены до 75.
Один из обходных путей, похоже, использует REST API в Твиттере, но я получаю сообщение об ошибке, когда следую инструкциям на странице разработчика в Твиттере.
url <- 'https://api.twitter.com/1.1/search/tweets.json?q=%40BernieSanders'
page <- GET(url)
print(http_status(page))
library(ROAuth)
library(httr)
library(twitteR)
# Set API Keys
api_key <- "####"
api_secret <- "####"
access_token <- "####"
access_token_secret <- "###"
setup_twitter_oauth(api_key, api_secret, access_token, access_token_secret)
url <- 'https://api.twitter.com/1.1/search/tweets.json?q=%40BernieSanders'
page <- GET(url)
> print(http_status(page))
$category
[1] "Client error"
$reason
[1] "Bad Request"
$message
[1] "Client error: (400) Bad Request"
Я также пытался использовать RSelenium
а также Phantomjs
запустить браузер и автоматизировать прокрутку вниз страницы, но я новичок в очистке и не смог преодолеть проблему специальной техники разбиения на страницы в Твиттере, которая использует maxID и sinceID. Я, например, не уверен, какой sinceID будет связан с датой 1 января 2016 года или каким будет maxID.
Любой совет будет принята с благодарностью!