Как искать большое количество твитов

Я хочу найти 50 ключевых слов в твиттере. До сих пор я пробовал два метода поиска в Твиттере. Первый метод печатает для меня только данные последних твитов независимо от ключевых слов.

Это первый метод, который я использовал:

for (i in c("#GMCR","#NFLX","#PCLN","#SWN","#MA","#EW","#WDC", "#ROST", "#RHT", "#ESRX", "#URBN", "#CRM", "#THC", "#BLK", "#AMZN", "#AAPL", "#CERN", "#FFIV", "#DTV", "#AZO", "#ISRG", "#SJM", "#EOG", "#OXY", "#CF", "#GIS", "#FLS", "#WMT", "#NTAP", "#HSP", "#CSX", "#ACT", "#MOS", "#TJX", "#CL", "#MCD", "#COG", "#RRC", "#FLIR", "#CTSH", "#MYL", "#LEG", "#APH", "#VAR", "#HAS", "#FSLR", "#APA", "#ABC", "#UNP", "#EL"))
         {
           tweet6<-searchTwitter(i,lang='en',since='2015-09-02', until='2015-09-03')
         }
tweet6

Это второй метод, я просто добавил 50 ключевых слов в функцию searchTwitter(), но он выдает ошибку 403:

tweet6<-searchTwitter('#GMCR||#NFLX||#PCLN||#SWN||#MA||#EW||#WDC||#ROST||#RHT||#ESRX||#URBN||#CRM||#THC||#BLK||#AMZN||#AAPL||#CERN||#FFIV||#DTV||#AZO||#ISRG||#SJM||#EOG||#OXY||#CF||#GIS||#FLS||#WMT||#NTAP||#HSP||#CSX||#ACT||#MOS||#TJX||#CL||#MCD||#COG||#RRC||#FLIR||#CTSH||#MYL||#LEG||#APH||#VAR||#HAS||#FSLR||#APA||#ABC||#UNP||#EL',
n=500,lang='en,since='2015-09-02', until='2015-09-03')

Это возвращает:

Error in twInterfaceObj$doAPICall(cmd, params, "GET", ...) : 
  client error: (403) Forbidden

person Dong wen kuei    schedule 09.09.2015    source источник
comment
Разве хэштеги для акций не называются cashtags, поэтому #GMCR будет $GMCR? @DougwenKuei   -  person Rime    schedule 10.09.2015


Ответы (1)


Вам следует прочитать документацию по API Twitter. В соответствии с передовыми методами поиска:

Ограничьте поиск до 10 ключевых слов и операторов.

Запросы могут быть ограничены из-за сложности. Если это произойдет, Search API ответит ошибкой: {error:Извините, ваш запрос слишком сложен. Пожалуйста, уменьшите сложность и повторите попытку.}

Таким образом, вы можете искать до 10 одновременно. Вы не должны использовать трубы в своем поиске, правильный способ поиска по нескольким ключевым словам — это просто пробел:

searchTwitter('#GMCR #NFLX #PCLN ...)

Я думаю, что ваш цикл - лучший способ сделать это, просто убедитесь, что вы не достигли предела скорости:

Поиск/твиты GET являются частью Twitter REST API 1.1 и имеют ограничения по скорости, как и другие методы версии 1.1. См. Ограничение скорости REST API в версии 1.1 для получения информации об этой модели. В настоящее время пользователи, представленные токенами доступа, могут делать 180 запросов/запросов за 15 минут. Используя аутентификацию только для приложений, приложение может делать 450 запросов/запросов за 15 минут от своего имени без контекста пользователя.

person jeremycg    schedule 10.09.2015