Парсинг Twitter
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
Вот и все для этого блога. Будьте креативны и попробуйте поиграть!
Спасибо за чтение! :)