Как сделать несколько звонков, используя Twitter API в Python - PullRequest
1 голос
/ 24 апреля 2019

Я делаю исторический поиск данных в Твиттере, используя API Песочницы Твиттера.Я использую пакет TwitterAPI на Python.Песочница позволяет в общей сложности 50 запросов API в месяц.

У меня есть этот код ниже, который собирает данные в порядке, но выполнил только один запрос, то есть у меня есть только 100 твитов.Мне интересно, какой код я могу вставить, чтобы я мог сделать несколько запросов за один раз.Я надеюсь теперь использовать все мои 50 запросов за этот месяц, используя этот код.

Текущий код:

from TwitterAPI import TwitterAPI
import csv

SEARCH_TERM = 'my-search-term-here'
PRODUCT = 'fullarchive'
LABEL = 'here-goes-my-dev-env'

api = TwitterAPI("consumer_key", 
             "consumer_secret", 
             "access_token_key", 
             "access_token_secret")

r = api.request('tweets/search/%s/:%s' % (PRODUCT, LABEL), 
            {'query':SEARCH_TERM, 
            'fromDate':'201811151334',
            'toDate':'201811161500'
            }
            )
csvFile = open('filename.csv', 'a')
csvWriter = csv.writer(csvFile)

for item in r:
    csvWriter.writerow([item['created_at'],item['user'].   ['screen_name'], item['text']

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019

Как говорит machinus, вы можете использовать утилиту TwitterPager.В вашем коде, я думаю, вам нужно изменить только эту строку кода:

r = api.request('tweets/search/%s/:%s' % (PRODUCT, LABEL), 
                {'query':SEARCH_TERM, 'fromDate':'201811151334', 'toDate':'201811161500'})

На это:

pager = TwitterPager(api, 'tweets/search/%s/:%s' % (PRODUCT, LABEL), 
                {'query':SEARCH_TERM, 'fromDate':'201811151334', 'toDate':'201811161500'})
r = pager.get_iterator()
0 голосов
/ 24 апреля 2019

Я не уверен, что действительно понимаю вашу проблему. Вы делаете запрос, который потенциально соответствует тысячам твитов, прямо сейчас вы получаете доступ к первым 100, но теперь вы хотите, чтобы следующие 100 были правильными? Если это так, вы должны знать, что Twitter API основан на системе подкачки. Это означает, что если ваш запрос соответствует 300 твитам, вы можете получить доступ к 3 страницам из 100 твитов. Для этого используйте API подкачки TwitterAPI:

http://geduldig.github.io/TwitterAPI/paging.html https://geduldig.github.io/TwitterAPI/twitterpager.html

Имейте в виду, что есть другая библиотека, 'tweepy' , которая может делать то же самое. Я нахожу это более удобным, но это личное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...