Освоение API Twitter: раскрытие его возможностей без is:quote

API Twitter – это мощный инструмент, который позволяет разработчикам получать доступ к обширной коллекции данных Twitter и использовать ее. Одним из распространенных параметров запроса, используемых в API, является is:quote, который фильтрует твиты, цитируемые ретвитами. Однако могут возникнуть ситуации, когда вы захотите исключить этот фильтр и получить все остальные типы твитов. В этой статье блога мы рассмотрим различные методы использования Twitter API, не полагаясь на параметр is:quote. Мы предоставим простые для понимания объяснения и практические примеры кода, которые помогут вам использовать весь потенциал Twitter API.

Метод 1: фильтрация по типу твита
Вместо использования is:quote вы можете указать нужные типы твитов непосредственно в запросе API. Например, если вы хотите получать только оригинальные твиты и ответы, вы можете использовать параметр «exclude:retweets». Вот пример использования Python и библиотеки Tweepy:

import tweepy
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
tweets = api.search(q="OpenAI", tweet_mode="extended", exclude="retweets")
for tweet in tweets:
    print(tweet.full_text)

Метод 2: Фильтр постобработки
Другой подход заключается в получении всех твитов с помощью стандартного запроса API, а затем программной фильтрации кавычек. Этот метод предполагает выборку большего набора твитов и выполнение постобработки с использованием цикла или понимания списка. Вот пример:

import tweepy
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
tweets = api.search(q="OpenAI", tweet_mode="extended")
non_quote_tweets = [tweet for tweet in tweets if not hasattr(tweet, "quoted_status")]
for tweet in non_quote_tweets:
    print(tweet.full_text)

Метод 3: API потоковой передачи с фильтрами
Если вам нужны данные в реальном времени и вы хотите исключить котировки по мере их публикации, вы можете использовать API потоковой передачи Twitter с настраиваемыми фильтрами. Этот метод требует настройки постоянного соединения с API Twitter и обработки входящих твитов на лету. Вот пример использования функции потоковой передачи Tweepy:

import tweepy
class StreamListener(tweepy.StreamListener):
    def on_status(self, status):
        if not hasattr(status, "quoted_status"):
            print(status.text)
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
stream_listener = StreamListener()
stream = tweepy.Stream(auth=api.auth, listener=stream_listener)
stream.filter(track=["OpenAI"], languages=["en"])

Используя эти методы, вы можете эффективно использовать API Twitter, не полагаясь на параметр is:quote. Если вам нужно исключить цитируемые ретвиты или проанализировать различные типы твитов, эти методы помогут вам извлечь нужные данные из обширной экосистемы Твиттера. Поэкспериментируйте с предоставленными примерами кода и изучите документацию Twitter API, чтобы узнать о более продвинутых функциях и возможностях.