Очистка: невозможно получить 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.

Любой совет будет принята с благодарностью!

0 ответов

Другие вопросы по тегам