S_ith
@S_ith
Студент

Как можно реализовать загрузку всех твитов из ленты новостей Твиттера за последние сутки, скажем?

Насколько я понимаю, простой прокруткой страницы вниз можно только последние три часа загрузить.
Подписался на кучу людей по очень интересным мне темам.
И хотел бы читать всё, что появилось от них в ленте за сутки или за больший промежуток времени, если это вообще возможно.
  • Вопрос задан
  • 3252 просмотра
Решения вопроса 1
Создаём ключи на https://apps.twitter.com/
Использовалось:
https://pypi.python.org/pypi/twitter/
https://pypi.python.org/pypi/python-dateutil/

И ещё, если скрипт дойдёт до самого конца ленты, он может зациклиться или выкинуть исключение, не проверял эту ситуацию.

from pathlib import Path
import dateutil.parser
import datetime
import twitter

APP_NAME = "TwitterScrap"
CONSUMER_KEY = "xxxxxxxxxxxxx" # Берём отсюда: https://apps.twitter.com/
CONSUMER_SECRET = "xxxxxxxxxxxxx" # Берём отсюда: https://apps.twitter.com/

credentials_file = Path("twitter_oauth_token.txt")
if not credentials_file.exists():
    oauth_token, oauth_secret = twitter.oauth_dance(APP_NAME, CONSUMER_KEY, CONSUMER_SECRET, str(credentials_file))
else:
    oauth_token, oauth_secret = twitter.read_token_file(str(credentials_file))

oauth = twitter.OAuth(oauth_token, oauth_secret, CONSUMER_KEY, CONSUMER_SECRET)
twitter_handler = twitter.Twitter(auth=oauth)

date = datetime.date.today()
until_date = date - datetime.timedelta(1) # Выводим твиты до вчерашнего дня
last_id = None
while(date > until_date):
    if last_id is not None:
        time_line = twitter_handler.statuses.home_timeline(exclude_replies=True, max_id=last_id)
    else:
        time_line = twitter_handler.statuses.home_timeline(exclude_replies=True)

    date = dateutil.parser.parse(time_line[-1]['created_at']).date()
    last_id = time_line[-1]['id']

    for i in time_line:
        print(i['user']['name'], "(@" + i['user']['screen_name'] + ")", i['created_at'])
        print(i['text'])
        print('--------------------')
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AloneCoder
@AloneCoder
[object Object]
я сделал себе граббер и через апи собираю по крону
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы