CoderCastrov logo
CoderCastrov
Питон

Парсинг Twitter

Парсинг Twitter
просмотров
2 мин чтение
#Питон
Table Of Content

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

    Это действительно просто! Благодаря некоторым удивительным библиотекам. Если вы новичок в Python, это отличный проект для выполнения.

    Существует несколько библиотек, доступных для парсинга данных с Twitter, каждая из которых имеет свои преимущества и недостатки. Давайте обсудим их ниже:

    Лучшая библиотека для парсинга Twitter для вас зависит от вашего конкретного случая использования и типа данных, которые вам нужно парсить. Если вам нужны данные в реальном времени с использованием API, хорошим выбором будет Tweepy. Если вам нужны исторические данные, то хорошими вариантами являются GetOldTweets3 и Twint (если быть откровенным, они немного устарели и не помогают в анализе в реальном времени). Если вы хотите парсить данные с Twitter без использования API Twitter, полезным инструментом будет Snscrape.

    Поэтому мы собираемся использовать Snscrape, потому что мы не хотим использовать API.

    Давайте начнем

    Задача 1: Соберите 100 твитов, содержащих слово "java"

    import snscrape.modules.twitter as sntwitter
    import pandas as pd

    Укажите запрос поиска в Twitter и количество твитов для получения

    query = "java"
    num_tweets = 100

    Создайте список для хранения твитов

    tweets = []

    Используя библиотеку snscrape для парсинга 100 твитов, содержащих ключевое слово "java" из Twitter. Собранные твиты затем сохраняются в списке с названием tweets, который содержит кортеж из четырех элементов для каждого твита: дата твита, содержание, имя пользователя и количество лайков.

    for i, tweet in enumerate(sntwitter.TwitterSearchScraper(query).get_items()):
        if i >= num_tweets:
            break
        tweets.append((tweet.date, tweet.rawContent, tweet.user.username, tweet.likeCount))

    Используйте dataframe, это поможет организовать данные и очень легко читать

    tweet_df = pd.DataFrame(tweets, columns = ['Date', 'Content', 'Username', 'Like Count'])
    
    tweet_df

    Пример вывода

    Задача 2: Теперь предположим, что вы хотите получить твиты от определенного пользователя - Допустим, вы хотите получить 500 твитов, которые написал Элон Маск с 10 июля 2018 года по 10 июля 2020 года. Вот как вы могли бы это сделать

    import snscrape.modules.twitter as sntwitter
    import pandas as pd
    
    query = "(from:elonmusk) until:2020-07-10 since:2018-07-10"
    num_tweets = 500
    
    tweets = []
    
    for i, tweet in enumerate(sntwitter.TwitterSearchScraper(query).get_items()):
        if i >= num_tweets:
            break
        tweets.append((tweet.date, tweet.rawContent, tweet.user.username, tweet.likeCount))
    
    tweet_df = pd.DataFrame(tweets, columns = ['Date', 'Content', 'Username', 'Like Count'])
    
    tweet_df

    Вот и все для этого блога. Будьте креативны и попробуйте поиграть!

    Спасибо за чтение! :)