CoderCastrov logo
CoderCastrov
Социальные сети

Как бесплатно извлечь контент из социальных сетей?

Как бесплатно извлечь контент из социальных сетей?
просмотров
3 мин чтение
#Социальные сети

Кто в наше время не пользуется социальными сетями? Фактически, я уверен, что те, кто никогда не пользовался ни одной из этих социальных сетей, таких как Facebook, Instagram, Twitter, Tiktok и т.д., являются меньшинством.

Среди сообщества специалистов по анализу данных процесс извлечения информации из интернета в целом называется Data Mining. Итак, то, что мы пытаемся создать, - это социальный медиа-дата-майнер.

В рамках этого поста мы собираемся создать код для получения данных с 3 платформ - Facebook, Instagram и Twitter. Несмотря на то, что TikTok в наши дни более популярен, я не выбрал его, потому что там в основном видеоконтент.



FacebookScraper

Как все знают, насколько злобен FB (шучу), они не предоставляют официального API для получения контента с их платформ. Поэтому мне пришлось искать альтернативы в надежном сообществе Python.

К счастью, я нашел эту библиотеку - FacebookScraper на Github. Работа этих библиотек основана на парсинге официального веб-сайта Facebook, обычно известного как веб-парсинг.

Я мог бы использовать инструменты, такие как BeautifulSoup, и создать свой собственный веб-парсер, но я не хотел изобретать велосипед, поэтому решил не делать этого. В любом случае, поскольку этот код является кодом сторонней библиотеки, будьте осторожны с ее ограничениями.

В любой момент они могут прекратить поддержку репозитория или просто FB может выбрать обновить свой веб-сайт, что сделает эту библиотеку бесполезной. Так что здесь нет Будущей совместимости, так сказать.

В любом случае, вот код.

Не забудьте установить пакет с помощью pip, так же, как вы устанавливаете любой другой пакет Python. Не стесняйтесь проверить страницу пакета для получения дополнительных вариантов для ваших потребностей.


InstaLoader

Переходим к Instagram. Хотя Instagram не является платформой, ориентированной в первую очередь на текст, как Twitter, мы все равно можем извлечь ценную информацию из подписей к постам, статистики и комментариев.

Опять же, как и с Facebook, здесь нет официального API, поэтому я нашел альтернативу, которая, я бы сказал, достаточно хороша, особенно благодаря отличной документации. Она называется InstaLoader.

Я постарался следовать аналогичной структуре кода, как и с Facebook, и вот он.

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

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

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

Tweepy

Наконец, перейдем к Twitter, который является единственной платформой здесь, предоставляющей официальное API и щедро позволяющей нам запрашивать до 500 тысяч твитов в месяц бесплатно.

Хотя вы можете напрямую обратиться к API Twitter, как только зарегистрируетесь и получите свой ключ API, я использую пакет на языке Python под названием Tweepy, который упрощает мою жизнь с функциями, соответствующими моим требованиям.

Вот код, который я написал для получения данных с Twitter.

Я уверен, что если вы прочитаете о Twitter API, вы обнаружите, что он имеет практически все, что вам может понадобиться в случае особых требований.


Вот и все, друзья. Я не рассмотрел YouTube и TikTok, две другие крупные социальные платформы. Возможно, я расскажу об этом в следующем посте, но пока что надеюсь, что этого будет достаточно для всех, кто работает над своими проектами.

Вот полный репозиторий с полным кодом. Я называю его SocialMediaDataMiner.

GitHub - NIkhilbadveli/SocialMediaDataMiner: Используя различные библиотеки для различных социальных медиа платформ, таких как Twitter, Facebook, Instagram, этот проект имеет возможность собирать данные о социальных медиа.

github.com