API Twitter: как заставить запрос продолжать работать? - PullRequest
1 голос
/ 30 октября 2019

Программист-новичок ищет здесь помощь.

Я уже настроил свой код в соответствии с моими требованиями для использования премиального 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 ]

0 голосов
/ 30 октября 2019

Чтобы увеличить результаты со значения по умолчанию от 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, пока не будут загружены твиты.

0 голосов
/ 30 октября 2019

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

results = api.GetSearch(
    raw_query="q=twitter%20&result_type=recent&since=2014-07-19&count=100")
...