В этом посте я собираюсь показать вам, как вы можете использовать Python для визуализации взаимосвязи между переменными Instagram с использованием матрицы Scatter. Это позволит вам оптимизировать свое взаимодействие и работать над избиением печальновидный алгоритм Действительно
Мы будем работать на трех разных шагах с четырьмя отдельными библиотеками:
Селен
: Автоматизировать веб-браузер, чтобы получить HTMLBeautifulsoup
: Разбор и соскоб HTMLInstaScrape
: Scrape посты и загрузите данныеПандас
: Организуйте и визуализируйте данные
Ради краткости, я в основном суммирую код для этой части, но в этом можно найти очень похожую полную версию репо .
Поскольку Instagram динамически загружает содержимое, мы не можем сделать простые запросы получить и вызывать его в день. Вместо этого нам нужно быть умным и использовать инструмент, который может сделать JavaScript, имитирующий пользователь, взаимодействующий с веб-страницей.
Это где Селен
собирается пригодиться; Это библиотека, которая позволяет нам автоматизировать веб-браузеры, такие как Google Chrome или Firefox Программически использует Python 🐍.
Сценарий, который мы используем, будет:
- Перейти на страницу Instagram
- Прокрутите его автоматически
- Соберите HTML в каждом прокрутке
- Сравните HTML и найти различия
Один из удобных функций, которые Селен
Предоставляет нам возможность вводить наши собственные сценарии JavaScript в браузере, который взаимодействует с веб-страницей. В этом случае мы будем использовать этот скрипт для непрерывного прокрутки страницы в цикле:
//JavaScript scroll script window.scrollTo(0, document.body.scrollHeight); var lenOfPage=document.body.scrollHeight; return lenOfPage;
После каждого свитка мы используем Beautifulsoup
Чтобы получить уникальный шорткод каждого поста на профиль, который мы просто прокручиваем. Это может быть использовано InstaScrape
построить InstaScrape. Пост
объект для соскабливания с Post.from_shortcode.
Предполагая, что мы создали Список
Почта
Объекты называются post_objects
Теперь мы готовы царапать данные, которые нам нужны. Используя InstaScrape
Все, что нам нужно сделать, чтобы скрепить каждый пост:
for post in post_objects: post.scrape()
И это все! Каждый Scrape загружает тонну точек данных со всем, начиная от количества лайков, используемых хэштег, помеченных пользователей, загрузки DateTime и т. Д.
Чтобы получить наши данные все аккуратные и актуальные, мы собираемся создавать создание панда. Dataframe Это будет хранить ваши данные:
import pandas as pd dataframe = pd.DataFrame([post.to_dict() for post in post_objects])
Теперь, когда у нас есть выразительный и мощный способ обрабатывать наши данные, мы можем создать еще несколько полезных столбцов с
dataframe["upload_hour"] = dataframe['upload_date'].dt.hour dataframe["upload_weekday"] = dataframe['upload_date'].dt.weekday dataframe["amt_tagged_users"] = dataframe['tagged_users'].str.len() dataframe["amt_hashtags"] = dataframe['hashtags'].str.len()
Теперь, чтобы визуализировать это, мы используем pandas.plotting.scatter_matrix Что позволит нам просмотреть матрицу графиков разбросов, которые показывают различные взаимодействия между переменными! Для этого примера мы будем сравнивать
- Час загрузки
- день недели
- Сумма комментариев
- количество симпатии
- Количество помеченных пользователей
- количество хэштегс
Используя свою собственную личную страницу Instagram ( @chris_greening ), мы получаем:
pd.plotting.scatter_matrix(dataframe[['likes', 'comments', 'amt_tagged_users', 'upload_hour']], figsize=(8,8))
Анализируя эту рассеянную матрицу, теперь мы можем посмотреть на то, как разные переменные взаимодействуют друг с другом и получите представление о том, что мы можем сделать, чтобы лучше повысить наше участие 🙌
Например, глядя на график разброса, который сравнивает upload_hour
и нравится
Мы видим пик где-то в полдень. Это указывает на то, что в среднем лучшее время для меня до публикации моего Instagram находится вокруг полудня.
Это всего лишь одно отношение, и все больше нужно обнаружить! Дайте мне знать, какие другие отношения вы нашли интересными в комментариях ниже ❤ ️
Если вы хотите узнать больше о разведочном анализе данных, используя InstaScrape
Проверьте мои другие сообщения в блоге
Исследующий анализ данных Instagram с использованием InstaScrape и Python
Chris Therening · 22 октября ’20 · 6 мин прочитаны
Визуализация взаимодействия Instagram с InstaScrape и Python
Крис озеривание · 21 октября ’20 · 3 мин прочитано
InstaScrape
всегда ищет больше участников, присоединяйтесь к нам в официальном репо
Крис-озерирование/InstaScrape
Мощная и гибкая библиотека Scropping Instagram для Python, обеспечивающая простые в использовании и выразительную инструменты для доступа к данным программно
Что это?
InstaScrape Это легкий пакет Python, который обеспечивает выразительный и гибкий API для соскабливания данных Instagram. Он предназначен для того, чтобы стать строительным блоком высокого уровня на наборе инструментов «Ученый данные» и может быть беспрепятственно интегрирован и распространен с помощью стандартных инструментов промышленности для веб-соскоб, науки и анализа данных.
Ключевая особенность
Вот несколько вещей, которые InstaScrape
Делает хорошо:
- Мощные, объектно-ориентированные соскобы инструменты для профилей, постов, хэштег, катушек и IGTV
- Scrapes HTML, Beautifulsoup и Json
- Скачать контент на свой компьютер как портить , JPG , MP4 и mp3
- Динамически извлекают HTML-встраиваемый код для постов
- Выразительный и последовательный API для краткого и элегантного кода
- Предназначен для бесшовной интеграции с Селен , Пандас и другие отраслевые стандартные инструменты для сбора и анализа данных
- Легкий; Без котельной или конфигураций не требуется
- Единственные жесткие зависимости являются Запросы и…
Оригинал: “https://dev.to/chrisgreening/visualizing-the-relationship-between-instagram-variables-using-python-55gg”