Можно ли использовать функцию фильтра Tweepy без параметра track? - PullRequest
3 голосов
/ 19 марта 2020

Я использую Tweepy для трансляции твитов в прямом эфире на основе нескольких параметров.

Следующий пример работает нормально, так как он возвращает все живые твиты, содержащие слово 'python':

stream.filter(track=['python'])

Однако я хотел бы получить все живые твиты при использовании других способов фильтрации моего потока, таких как язык. Например, следующий пример должен позволить мне получить все греческие твиты:

stream.filter(track=['*'], languages=['el'])

К сожалению, это возвращает все греческие твиты, которые содержат символ *.

Если я наберу:

stream.filter(languages=['el']) 

, я получу ошибку 406.

Итак, мои вопросы:

Можно ли удалить параметр track, чтобы получать все живые твиты с помощью Tweepy? Есть ли другой способ получить все твиты на основе других параметров?


РЕДАКТИРОВАТЬ: Я знаю, что stream.sample() вариант. Проблема в том, что если я наберу:

stream.sample(languages=['en'])

, я получу много твитов, но если я наберу:

stream.sample(languages=['el'])

, поток будет очень медленным. Т.е. я могу получать один твит в минуту. Я предполагаю, что это связано с тем, как выбираются твиты и насколько мала выборка. Итак, я спрашиваю, есть ли лучший способ достичь того, чего я хочу, потенциально без использования stream.sample().

1 Ответ

0 голосов
/ 19 марта 2020
stream.filter(follow=follow, track=track, locations=location)

Вы должны предоставить follow (список идентификаторов Twitter), track (список ключевых слов) или поля местоположения location (твиты из регион).
Вы можете указать несколько, это будет действовать как логический OR.

Логичным шагом будет указать поле местоположения, которое охватывает всю Землю. К сожалению, это только потоковые твиты пользователей, которые предоставляют информацию о своем географическом местоположении.

Таким образом, это означает, что все, что вы действительно можете сделать, это что-то вроде этого:

stream.filter(follow=follow, track=["a", "b", "c", ...], locations=[0, -90, 360, 90], languages=['el'])

Параметр track принимает список до 400 ключевых слов. Вы можете найти список наиболее часто используемых слов на вашем языке и предоставить его там.

Имейте в виду, что вы не получите все твиты из-за огромного количества поступающих твитов. Это будет как 1% от всех твитов, и вы не сможете go ниже. Вам придется заплатить, чтобы получить доступ к премиум API.

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