Статьи

Добыча данных из Твиттера и сохранение их в MongoDB

Эй, монголы!

Недавно я имел удовольствие присоединиться к команде MongoLab . Я делюсь этим с вами по двум причинам: во-первых, вы тоже можете! (Мы нанимаем !). Но также потому, что я помню, когда услышал о MongoDB, я создал учетную запись на MongoLab и подумал … что теперь?

Twitter-Harvest

С распространением технологий с открытым исходным кодом, когда «большие данные» и аналитика стремительно растут, мы подумали, что было бы полезно позволить нашим пользователям и друзьям использовать сценарий, который заботится о мельчайших деталях и позволяет им исследовать то, что делает MongoDB великим. Мы рады представить Twitter-Harvest, скрипт Python, который использует Twitter REST API v1.1 для извлечения твитов из временной шкалы пользователя и их вставки в базу данных MongoDB.

Quick Demo

Подробная информация об установке и запуске приложения находится в этом репозитории GitHub . Для нетерпеливых, я сочувствую… мы предоставили некоторые учетные данные Twitter и команду «из коробки», которую вы можете запустить, чтобы убедиться, что все работает. После того, как вы загрузили / распаковали репо, запустите:

Прямо из коробки вы заметите, что скрипт напечатает на вашей консоли все твиты, которые он собирает. Просматривайте справочные документы и передавайте аргументы соответствующим образом. В первую очередь вы захотите добавить URI MongoDB с помощью флага –db, чтобы вы могли хранить твиты в своей базе данных. Также имейте в виду, что если вы хотите использовать этот скрипт более одного раза, вы должны получить свои собственные учетные данные Twitter по соображениям безопасности и ограничения скорости.

Дайвинг в

После того, как вы настроите необходимые модули, вы заметите, что у скрипта запуска есть довольно много опций. * Требуются учетные данные Twitter OAuth. Чтобы помочь вам сохранить собранные твиты, вы можете создать бесплатную базу данных Sandbox  вместе с нами! Мы включили следующие опции, которые, по нашему мнению, будут популярны среди пользователей:

  • сбор местных ретвитов (-r)
  • при печати каждого твита программа повторяется (-v)
  • URI MongoDB, разрешить вставку в MongoDB (–db)
  • установка количества твитов, которые нужно собрать (–numtweets)
  • пользовательская временная шкала, из которой вы хотите извлечь * значение по умолчанию — mongolab (–user)

Итак, допустим, я хочу собрать и распечатать 100
твитов
@mongolab (и ретвитов). Команда и аргументы будут:

python twitter-harvest.py --db mongodb-uri --consumer-key consumer-key --consumer-secret consumer-secret --access-token access-token --access-secret access-secret -r --numtweets 100

Точно так же у нас есть 100 твитов в коллекции под названием «mongolab».

Чтобы помочь вам в этом, у нас также есть справочная документация:

% python twitter-harvest.py -h

optional arguments:

-h, --help                             help
-r, --retweet                          include native retweets
-v, --verbose                          print harvested tweets in shell
--numtweets NUMTWEETS                  set harvest number
--user USER                            choose twitter user timeline
--db DB                                MongoDB URI
--consumer-key CONSUMER_KEY            Twitter Consumer Key
--consumer-secret CONSUMER_SECRET      Twitter Consumer Secret
--access-token ACCESS_TOKEN            Twitter Access Token
--access-secret ACCESS_SECRET          Twitter Access Token Secret

Теперь о забавных вещах. Давайте посмотрим, какие интересные данные или проекты вы можете придумать, используя этот инструмент!

Мы бросаем вам вызов!

В случае, если вы озадачены, вот несколько проблем, которые мы придумали, которые действительно выделяют как огромный массив информации Twitter, так и функции MongoDB.

1. Составьте список «успешных» — ретвитированных и / или избранных твитов и верните только несколько полей. Подсказка: структура агрегации

2. Собирайте урожай у разных пользователей (друзей, родственников, спортсменов) и смотрите, кто твитнул рядом с вами и с какой частотой. Подсказка: геопространственные индексы

3. Поэкспериментируйте с текстовыми индексами — в конце концов, твиты являются текстовыми — и изучите ваши запросы. Вы можете сделать их быстрее? Подсказка: Поиск текста + Курсор Объяснить

4. Используйте это в качестве примера для настройки общественного потока — отлично подходит для интеллектуального анализа данных! Подсказка: Twitter Публичные потоки

Удачного написания кода, и обязательно оставляйте нас в курсе ваших проектов. Мы всегда здесь, чтобы помочь!

С уважением,

Крис @ MongoLab

* отдельная благодарность нашему шведскому другу Густаву Арнгардену @arngarden в @aitellu за идею сбора урожая!