Вы когда -нибудь хотели отслеживать свою деятельность твита в Twitter? Тогда эта статья для вас. Мне нравится, как ORM Django позволяет легко моделировать базу данных и изменить ее с помощью представлений (то есть функциональный контроль приложения).
В этом уроке мы будем изучать, как управлять твиттером, используя Официальный API Twitter и генерируйте тепловую карту из твитов, используя ArcType. Чтобы достичь этого, мы будем отслеживать твиты некоторых очень популярных знаменитостей, чтобы создать тепловую карту, подобную той, что на изображении выше.
Чтобы полностью понять этот урок, у вас должно быть следующее:
- Python 3.7 или новее.
- Арктип
- Основное понимание SQL.
- Основное понимание Джанго.
- Учетная запись разработчика Twitter.
- Текстовый редактор.
Чтобы использовать официальный API Twitter, вам нужно настроить учетную запись разработчика Twitter. Перейти к https://developer.twitter.com и регистрация, если у вас нет. Чтобы зарегистрироваться, вам нужно будет предоставить подробную информацию о том, как вы хотите использовать свой доступ к API Twitter. После предоставления информации вам нужно будет дождаться проверки Twitter и включения вашей учетной записи.
Когда ваша учетная запись проверена, перейдите на панель панели разработчика, как видно на изображении выше.
На этом этапе вам необходимо создать проект, в котором можно разместить несколько приложений. Первый, Нажмите на Создать проект
, затем дайте вашему проекту имя, вариант использования и описание.
Теперь вам нужно создать приложение. Для этого нажмите «Создать новое приложение» и предоставьте имя для вашего приложения.
После создания вашего приложения Twitter вы увидите страницу с ключами приложения, как видно на изображении ниже. Скопируйте и сохраните их где -нибудь, вы можете легко их получить.
Перейдите в меню Project, чтобы затем открыть свой проект. В разделе «Приложения» нажмите на значок ключа, затем генерируйте Токен доступа
и доступ к секрету
токен для вашего приложения в нижней части отображения страницы.
Нажмите на кнопку «Создать», затем скопируйте и сохраните токен Access и доступ к секретному токену, где вы можете легко их получить.
Чтобы создать приложение Django, запустите следующий код в вашей командной строке:
# creating the project python manage.py startproject TweetsDaily # change to the project directory cd TweetsDaily #creating the app python manage.py startapp App
Теперь перейдите к настройки.py
Файл и Приложение
В список установленных приложений, как показано ниже:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'App' ]
Далее, перейдите к urls.py
Файл в каталоге проекта и редактируйте, как видно в коде ниже:
from django.contrib import admin from django.urls import path, include from django.conf import settings urlpatterns = [ path('admin/', admin.site.urls), path('', include("App.urls")), ]
Наконец, перейдите к Приложение
Папка и создайте новый urls.py
файл. Добавьте код Python ниже в файл и сохраните:
from django.conf import settings from django.conf.urls.static import static from django.urls import path, include from . import views app_name = "App" urlpatterns = [ path("", views.index, name="index"), ]
В приведенном выше коде мы определили URL -адрес индекса и подключили его к Индекс
Просмотр, который мы определим в нашем views.py
файл.
Здесь мы определим модели таблиц в модели.py
Файл, как и в коде Python ниже:
from django.db import models # Create your models here. from django.db import models # Create your models here. class Tweets(models.Model): username= models.TextField() tweet_number = models.IntegerField() created_at = models.IntegerField() time = models.IntegerField() retweet_count= models.IntegerField() def __str__(self): return self.tweet_number
После сохранения нам необходимо перенести базу данных, используя ниже команду в каталоге проекта.
#making migrations python manage.py makemigrations #migrating the database python manage.py migrate
views.py
Файл в проекте Django – это то, где мы пишем основную логику для приложения.
Импорт необходимых библиотек
Скопируйте и вставьте код Python ниже в верхней части views.py
Файл для импорта требуемых библиотек.
from django.shortcuts import render from tweepy import OAuthHandler from tweepy import API from tweepy import Cursor from datetime import datetime, date, time, timedelta from collections import Counter from django.http import HttpResponse from . models import Tweets
Инициализация Tweepy
Скопируйте и вставьте код ниже в views.py
Фад и предоставьте свои реальные ключи для инициализации Tweepy.
consumer_key="api_key" consumer_secret="api_secret_key" access_token="access_token" access_token_secret="access_token_secret" auth = OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token, access_token_secret) auth_api = API(auth,wait_on_rate_limit=True)
Нам также необходимо создать список имен пользователей всех знаменитостей, чьи твиты мы хотим проанализировать, как видно в коде ниже.
username=["Cristiano","BarackObama","rihanna","TheRock"]
Создание представления индекса
Скопируйте и вставьте код Python ниже в views.py
Файл для создания представления индекса. Это представление запускается путем загрузки приложения в браузер:
def index(request): tweet_count = 0 for i in username: try: for status in Cursor(auth_api.user_timeline, id=i).items(): tweet_count = tweet_count + 1 if status.created_at.year == 2021 and status.created_at.month == 5: tweets_save= Tweets.objects.create(username=i,tweet_number=tweet_count,created_at=status.created_at.day,time=status.created_at.hour,retweet_count=status.retweet_count) tweets_save.save() except: pass return HttpResponse('Loaded Tweets Data
')
В приведенном выше коде мы делаем запрос на API Twitter, используя Tweepy, чтобы получить все твиты пользователя. Сейчас мы запускаем цикл через твиты пользователя, чтобы проверить все твиты, сделанные в мае 2021 года. Наконец, мы сохраним все твиты, и количество раз, когда подписчики пользователя ретвитнули их в базе данных. Затем приложения отправят Httpresponse «загруженные данные твитов» при приложении при запуске.
Чтобы запустить приложение, скопируйте и вставьте приведенные ниже команды в вашу команду
#running the application python manage.py runserver
Если приложение работает, вы должны увидеть результат, как показано ниже.
Перейти к http://127.0.0.1:8000 Чтобы просмотреть запущенное приложение и запустить Индекс
Просмотр, чтобы сохранить все данные твита в базе данных.
Чтобы использовать ArcType, нам нужно подключить нашу базу данных и настроить рабочее пространство. Для этого следуйте инструкциям ниже.
Шаг 1
Откройте ArcType, нажмите «У меня есть существующая база данных» и выберите тип базы данных. Для этого урока мы используем MySQL.
Шаг 2
Предоставьте необходимую информацию для базы данных и нажмите Сохранить
Анкет
Шаг 3
Теперь вы должны увидеть базу данных в ArcType. Затем перейдите к таблицу твитов. У вас должно быть что -то похожее на изображение ниже.
В настоящее время у нас есть несколько данных твитов за май в 2021 году, сохранившиеся в таблице твитов. Чтобы создать тепловую карту данных, нам нужно подвести итог подсчета ретвитов для твитов, созданных каждый день в мае месяца, и группировать все твиты, которые последователи пользователя ретвитировали датой и именем пользователя. Кроме того, поскольку Барак Обама и Рианна являются двумя из самых популярных людей в Твиттере, мы должны учитывать размер следующих последствий каждой учетной записи, чтобы получить более четкую картину в наших данных.
Чтобы достичь этого, нажмите на Новый запрос
Кнопка, затем сохраните и запустите запрос SQL ниже:
SELECT username, ( CASE WHEN (username = 'rihanna') THEN (SUM(retweet_count) / 102300000 * 100) WHEN (username = 'BarackObama') THEN (SUM(retweet_count) / 129600000 * 100) WHEN (username = 'TheRock') THEN (SUM(retweet_count) / 15200000 * 100) WHEN (username = 'Cristiano') THEN (SUM(retweet_count) / 92400000 * 100) END ) AS tweet_heat, CONCAT('May ', created_at) FROM app_tweets GROUP BY created_at, username ORDER BY created_at ASC
Запуск приведенного выше кода предоставит вам данные, как показано на изображении ниже.
Чтобы создать диаграмму тепловой карты для данных твита выше, следуйте инструкциям ниже:
Создайте новую панель аркту
Создайте новую вкладку, затем выберите Новая приборная панель
Кнопка в верхнем меню. Затем нажмите на + Добавить
Кнопка, затем выберите «Диаграмма».
Получить данные таблицы из сохраненного запроса
Нажмите на Выберите данные диаграммы
На пустой панели приборной панели.
Отредактируйте заголовок и выберите запрос, который вы сохранили выше (в моем случае, Tweetsdailystats) в качестве источника данных.
Назначить столбцы результатов для нагревания оси карты
Выберите «Тепловая карта» как тип диаграммы, затем перетащите данные, расположенные на рисунке ниже.
Настройка тепловой карты Arctype
Наконец, перейдите на вкладку «Дополнительно», затем введите «ретвиты в день» в качестве значения оси Y.
После выполнения приведенных выше инструкций у вас должна быть тепловая карта, похожая на то, что на изображении ниже.
На рисунке выше отображается деятельность ретвитов для каждого твита, сделанного четырьмя знаменитостями в мае 2021 года, сгруппированной до того дня, как знаменитость создала твит.
Визуализация твитов пользователей
Создайте новый запрос с запросом SQL ниже. Затем беги и сохраните запрос.
WITH alldates AS( SELECT distinct created_at FROM app_tweets ORDER BY 1 ), alltimes AS( SELECT distinct time FROM app_tweets ORDER BY 1 ), timetable AS( SELECT * FROM alldates, alltimes ORDER BY 1 ) SELECT CONCAT('May ',t.created_at) AS day, CONCAT(t.time,':00') AS hour, COUNT(a.tweet_number) as tweets FROM timetable t LEFT OUTER JOIN app_tweets a ON (a.username = 'BarackObama' AND a.created_at = t.created_at AND a.time = t.time) GROUP BY t.time, t.created_at ORDER BY t.created_at, t.time
Создайте новую диаграмму тепловой карты, используя данные запроса, которые вы сохранили выше. Затем настройте тепловую карту, чтобы иметь день
Поле в оси X, час
в оси Y, и твиты
в оси Z.
Карта тепла отображается на каждом твите, сделанном одной из знаменитостей (то есть Бараком Обамой) в мае 2021 года, сгруппированного к дню и часу дня, когда пользователь создал твит.
Запрос на ретвиты пользователя Twitter
Создайте новый запрос с запросом SQL ниже. Затем беги и сохраните запрос.
WITH alldates AS( SELECT distinct created_at FROM app_tweets ORDER BY 1 ), alltimes AS( SELECT distinct time FROM app_tweets ORDER BY 1 ), timetable AS( SELECT * FROM alldates, alltimes ORDER BY 1 ) SELECT CONCAT('May ',t.created_at) AS day, CONCAT(t.time,':00') AS hour, SUM(a.retweet_count) as retweets FROM timetable t LEFT OUTER JOIN app_tweets a ON (a.username = 'BarackObama' AND a.created_at = t.created_at AND a.time = t.time) GROUP BY t.time, t.created_at ORDER BY t.created_at, t.time
Создайте новую диаграмму тепловой карты, используя данные запроса, которые вы сохранили выше. Затем настройте тепловую карту, чтобы иметь день
Поле в оси X, час
в оси Y, и ретвиты
в оси Z.
На приведенной выше карте тепла отображается деятельность ретвитов для каждого твита, сделанного одним из знаменитостей (то есть, Барака Обама) в мае 2021 года, сгруппированного с днем и часом дня, который пользователь создал твит.
Визуализируйте соотношение твитов-реттизок
Создайте новый запрос с запросом SQL ниже. Затем бегите и сохраните запрос:
WITH alldates AS( SELECT distinct created_at FROM app_tweets ORDER BY 1 ), alltimes AS( SELECT distinct time FROM app_tweets ORDER BY 1 ), timetable AS( SELECT * FROM alldates, alltimes ORDER BY 1 ) SELECT CONCAT('May ',t.created_at) AS day, CONCAT(t.time,':00') AS hour, CAST((SUM(a.retweet_count)/COUNT(tweet_number)) AS UNSIGNED) as ratio FROM timetable t LEFT OUTER JOIN app_tweets a ON (a.username = 'BarackObama' AND a.created_at = t.created_at AND a.time = t.time) GROUP BY t.time, t.created_at ORDER BY t.created_at, t.time
Создайте новую диаграмму тепловой карты, используя данные запроса, которые вы сохранили выше. Затем настройте тепловую карту, чтобы иметь день
Поле в оси X, час
в оси Y, и Соотношение
в оси Z.
В этой статье вы научились отслеживать данные твита с Tweepy и визуализировать их как тепловую карту на приборной панели с ArcType Анкет Кроме того, вы увидели, как легко запустить запросы SQL в вашей базе данных, используя ArcType, и получили возможность изучить некоторые из основных функций и функций.
Исходный код приложения приборной панели и ссылки на приборную панель ArcType SQL доступны на GitHub . Если у вас есть какие -либо вопросы, не стесняйтесь обращаться ко мне в Twitter: @ LordChuks3 Анкет
Оригинал: “https://dev.to/chukslord1/building-a-tweets-heat-map-charts-with-tweepy-django-and-arctype-12i9”