python

Собираем новости в один список

  • вторник, 17 февраля 2015 г. в 02:10:43
http://habrahabr.ru/post/250567/

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

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

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

Как вы уже догадались — поставленную задачу решает программа, меньше слов — репозиторий на Github.

Как работает программа


Твиты загружаются через официальное API, поэтому необходимо создать приложение, а отправка писем осуществляется через сервис Mailgun (он даёт 10 000 бесплатных писем каждый месяц), там тоже зарегистрируйтесь.

Тело письма генерирует библиотека quik, поэтому шаблон можно изменить как угодно, смотрите файл template.html.

Для удобства аккаунты твиттера разделены на категории, например, @habrahabr_feed и @3d_news будут в группе «Информационные технологии». Вложенных категорий нет, если сделаете — приму Pull Request.

Установка и настройка программы
Зависимости:
pip install requests
pip install TwitterAPI
pip install quik

Исходный код:
cd ~
git clone https://github.com/eg0r/twitter_to_email

В файле settings.py замените настройки своими (секции прокомментированы) и настройте crontab.

Например, для себя я сделал выполнение каждый день в 20:00 по МСК:
0 20 * * * cd ~/twitter_to_email && python3 aggregator.py

Результат


image
Gmail: письмо целиком, ссылки в конце с троеточием ведут на страницу твита

А как вы справляетесь с большим количеством информации?