Twitter API: как заставить запрос работать?

Здесь начинающий программист обращается за помощью.

Я уже настроил свой код в соответствии со своими требованиями, чтобы использовать премиум API Twitter.

SEARCH_TERM = '#AAPL OR #FB OR #KO OR #ABT OR #PEPCO'
PRODUCT = 'fullarchive'
LABEL = 'my_label'
r = api.request('tweets/search/%s/:%s' % (PRODUCT, LABEL), 
                {'query':SEARCH_TERM, 'fromDate':201501010000, 'toDate':201812310000})

Однако, когда я запускаю его, я получаю максимальное количество твитов на поиск, которое составляет 500. Мой вопрос: следует ли мне добавить к запросу maxResults = 500? И как мне использовать следующий параметр, чтобы код работал, пока не будут получены все твиты, соответствующие моему запросу?

2 ответа

Решение

Да, чтобы увеличить результаты со значения по умолчанию от 100 до 500, добавьте maxResults на такой запрос:

r = api.request('tweets/search/%s/:%s' % (PRODUCT, LABEL), 
    {
        'query':SEARCH_TERM, 
        'fromDate':201501010000, 'toDate':201812310000,
        'maxResults':500
    })

Вы можете делать последовательные запросы, чтобы получить больше результатов, используя nextпараметр. Но, что еще проще, вы можете позволить TwitterAPI сделать это за вас, используяTwitterPagerучебный класс. Вот пример:

from TwitterAPI import TwitterAPI, TwitterPager
SEARCH_TERM = '#AAPL OR #FB OR #KO OR #ABT OR #PEPCO'
PRODUCT = 'fullarchive'
LABEL = 'my_label'
api = TwitterAPI(<consumer key>, 
                 <consumer secret>,
                 <access token key>,
                 <access token secret>)
pager = TwitterPager(api, 'tweets/search/%s/:%s' % (PRODUCT, LABEL), 
    {
        'query':SEARCH_TERM, 
        'fromDate':201501010000, 'toDate':201812310000
    })
for item in pager.get_iterator():
    print(item['text'] if 'text' in item else item)

В этом примере будут выполняться последовательные запросы с next параметр до тех пор, пока твиты не будут загружены.

Используйте переменную count в raw_query, например:

results = api.GetSearch(
    raw_query="q=twitter%20&result_type=recent&since=2014-07-19&count=100")
Другие вопросы по тегам