SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Пишем свой сервис-агрегатор:
архитектура, подводные камни
Вершинин Никита
Предпосылки

Собственный штат корреспондентов —
дорого

Ручной сбор новостей со сторонних сайтов
— нужен штат контент-менеджеров

Пока новость пройдет через все инстанции
до публикации на сайте, она уже потеряет
актуальность
Задачи

Создать первый казахстанский агрегатор
новостей

Автоматический сбор новостей со сторонних
сайтов

Автоматическая группировка новостей в
сюжеты

Свести до минимума человеческое
присутствие
Реализация

Проблемы в источниках

Архитектура сервиса

Пишем бэкенд

Что есть на фронтенде?
Разные форматы
Разные кодировки
Разные форматы даты
Невалидный код
Архитектура сервиса
Пишем бэкенд
0. Собираем данные
Пишем бэкенд
1. Обрабатываем очередь
Пишем бэкенд
2. Подробнее о магии

Обработка даты и времени

Забираем полный текст с сайта—источника

Конвертируем все в UTF-8, чистим HTML

Определяем язык

Ищем связанные новости (сюжеты)

Сохраняем изображения
Пишем бэкенд
2.1. Обработка текста на казахском

Плохо не иметь в друзьях лингвиста
казахского языка

Переводим текст с казахского на русский

Работаем дальше как с обычным текстом на
русском
Пишем бэкенд
2.2. Обработка текста на русском

Разбиваем текст на слова и приводим
каждое к нормальной форме:
— располагавший → располагать
— подобными → подобный
— единицами → единица

Каждое нормализованное слово
стеммируем:
— располагать → располаг
— подобный → подобн
Пишем бэкенд
2.3. Поиск связанных и категории

Поисковая база — хранилище документов +
реализация TF/IDF с некоторыми
нормировками

Тематика новости определяется на
основании базы знаний и данных из
источника новости
Пишем бэкенд
3. Проблемы

Ложные срабатывания при поиске
связанных новостей

Несрабатывания при поиске связанных
новостей

Иногда сбоит кодировка.
Что есть на фронтенде?

Отображение новостей

Полнотекстовый поиск

Личный кабинет пользователя

Комментарии

Собственные информеры
Что достигнуто?

Обработка одной новости занимает около
одной минуты (+/- 30 секунд)

Вся работа автоматизирована и не требует
человеческого участия

Сайтом полностью может управлять один
человек
?Вопросы
Вершинин Никита
me@endeveit.net
http://endeveit.net/
http://thenews.kz/

Weitere ähnliche Inhalte

Andere mochten auch

СПИК 2011: Развитие платежей в Рунете
СПИК 2011: Развитие платежей в РунетеСПИК 2011: Развитие платежей в Рунете
СПИК 2011: Развитие платежей в РунетеE-Money News
 
PayBox.kz - Агрегатор интернет магазинов для платежных систем
PayBox.kz - Агрегатор интернет магазинов для платежных системPayBox.kz - Агрегатор интернет магазинов для платежных систем
PayBox.kz - Агрегатор интернет магазинов для платежных системAlexey Trusov
 
Myragon продвижение онлайн игр с оплатой за действие
Myragon продвижение онлайн игр с оплатой за действиеMyragon продвижение онлайн игр с оплатой за действие
Myragon продвижение онлайн игр с оплатой за действиеMyragon_ru
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Архитектура п...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Архитектура п...13 октября, DEV {web} - конференция о Highload веб-разработке. "Архитектура п...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Архитектура п...IT-Portfolio
 
Непорочное продвижение
Непорочное продвижениеНепорочное продвижение
Непорочное продвижениеAlexey Chekushin
 
Инновационный Прорыв 2013 - Бизнес модель и Canvas
Инновационный Прорыв 2013 - Бизнес модель и CanvasИнновационный Прорыв 2013 - Бизнес модель и Canvas
Инновационный Прорыв 2013 - Бизнес модель и CanvasAnton Karpenko (KARPOLAN)
 
Мобильная разработка для олдскульных программистов
Мобильная разработка для олдскульных программистовМобильная разработка для олдскульных программистов
Мобильная разработка для олдскульных программистовAnton Karpenko (KARPOLAN)
 
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Ontico
 
ITCrowd 2 - Разработка крупного проекта в команде
ITCrowd 2 - Разработка крупного проекта в командеITCrowd 2 - Разработка крупного проекта в команде
ITCrowd 2 - Разработка крупного проекта в командеITCrowd Almaty
 
Александр Трищенко: Phalcon framework
Александр Трищенко: Phalcon frameworkАлександр Трищенко: Phalcon framework
Александр Трищенко: Phalcon frameworkOleg Poludnenko
 

Andere mochten auch (12)

СПИК 2011: Развитие платежей в Рунете
СПИК 2011: Развитие платежей в РунетеСПИК 2011: Развитие платежей в Рунете
СПИК 2011: Развитие платежей в Рунете
 
PayBox.kz - Агрегатор интернет магазинов для платежных систем
PayBox.kz - Агрегатор интернет магазинов для платежных системPayBox.kz - Агрегатор интернет магазинов для платежных систем
PayBox.kz - Агрегатор интернет магазинов для платежных систем
 
Myragon продвижение онлайн игр с оплатой за действие
Myragon продвижение онлайн игр с оплатой за действиеMyragon продвижение онлайн игр с оплатой за действие
Myragon продвижение онлайн игр с оплатой за действие
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Архитектура п...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Архитектура п...13 октября, DEV {web} - конференция о Highload веб-разработке. "Архитектура п...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Архитектура п...
 
Непорочное продвижение
Непорочное продвижениеНепорочное продвижение
Непорочное продвижение
 
Инновационный Прорыв 2013 - Бизнес модель и Canvas
Инновационный Прорыв 2013 - Бизнес модель и CanvasИнновационный Прорыв 2013 - Бизнес модель и Canvas
Инновационный Прорыв 2013 - Бизнес модель и Canvas
 
IT basics for non technical CEO (Rus)
IT basics for non technical CEO (Rus)IT basics for non technical CEO (Rus)
IT basics for non technical CEO (Rus)
 
Мобильная разработка для олдскульных программистов
Мобильная разработка для олдскульных программистовМобильная разработка для олдскульных программистов
Мобильная разработка для олдскульных программистов
 
TECHNATION - Internal IT Processes (Rus)
TECHNATION - Internal IT Processes (Rus)TECHNATION - Internal IT Processes (Rus)
TECHNATION - Internal IT Processes (Rus)
 
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
Twisted Framework - фреймворк для написания сетевых приложений на Python (Анд...
 
ITCrowd 2 - Разработка крупного проекта в команде
ITCrowd 2 - Разработка крупного проекта в командеITCrowd 2 - Разработка крупного проекта в команде
ITCrowd 2 - Разработка крупного проекта в команде
 
Александр Трищенко: Phalcon framework
Александр Трищенко: Phalcon frameworkАлександр Трищенко: Phalcon framework
Александр Трищенко: Phalcon framework
 

Ähnlich wie Пишем свой сервис-агрегатор: архитектура, подводные камни

Экономика проекта с точки зрения IT
Экономика проекта с точки зрения ITЭкономика проекта с точки зрения IT
Экономика проекта с точки зрения IToleg.bunin
 
Презентация компании KDTeam (2014 г.)
Презентация компании KDTeam (2014 г.)Презентация компании KDTeam (2014 г.)
Презентация компании KDTeam (2014 г.)Александр Крылов
 
Продвижение сайта с оплатой за Лиды
Продвижение сайта с оплатой за ЛидыПродвижение сайта с оплатой за Лиды
Продвижение сайта с оплатой за ЛидыSEOXL
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET CoreAndrew Gubskiy
 
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...Ontico
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцMikhail Tabunov
 
Презентация по поддержке сайтов
Презентация по поддержке сайтовПрезентация по поддержке сайтов
Презентация по поддержке сайтовwebit_ru
 
Cisco Social Network Security
Cisco Social Network SecurityCisco Social Network Security
Cisco Social Network SecurityCisco Russia
 
Garpix - проекты и кейсы компании
Garpix - проекты и кейсы компанииGarpix - проекты и кейсы компании
Garpix - проекты и кейсы компанииssuser707fad
 
Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)Василий Савунов
 
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...it-people
 
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
Инструментарий для создания дистрибутивов продуктов | Владимир СелинИнструментарий для создания дистрибутивов продуктов | Владимир Селин
Инструментарий для создания дистрибутивов продуктов | Владимир СелинPositive Hack Days
 
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Igor Miniailo
 
Швейцарский нож для локализации сайта — Андрей Лежнин, getLoc
Швейцарский нож для локализации сайта — Андрей Лежнин, getLocШвейцарский нож для локализации сайта — Андрей Лежнин, getLoc
Швейцарский нож для локализации сайта — Андрей Лежнин, getLocArseniy Konov
 
Проектирование большого интернет-магазина
Проектирование большого интернет-магазинаПроектирование большого интернет-магазина
Проектирование большого интернет-магазинаArtem Markov
 
Разработка интернет-магазина: от идеи до реализации
Разработка интернет-магазина: от идеи до реализацииРазработка интернет-магазина: от идеи до реализации
Разработка интернет-магазина: от идеи до реализацииsportgid
 
SQL Server StreamIinsight - data processing in real time
SQL Server StreamIinsight - data processing in real timeSQL Server StreamIinsight - data processing in real time
SQL Server StreamIinsight - data processing in real timeДенис Резник
 

Ähnlich wie Пишем свой сервис-агрегатор: архитектура, подводные камни (20)

Экономика проекта с точки зрения IT
Экономика проекта с точки зрения ITЭкономика проекта с точки зрения IT
Экономика проекта с точки зрения IT
 
Презентация компании KDTeam (2014 г.)
Презентация компании KDTeam (2014 г.)Презентация компании KDTeam (2014 г.)
Презентация компании KDTeam (2014 г.)
 
Продвижение сайта с оплатой за Лиды
Продвижение сайта с оплатой за ЛидыПродвижение сайта с оплатой за Лиды
Продвижение сайта с оплатой за Лиды
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
 
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
 
Презентация по поддержке сайтов
Презентация по поддержке сайтовПрезентация по поддержке сайтов
Презентация по поддержке сайтов
 
Cisco Social Network Security
Cisco Social Network SecurityCisco Social Network Security
Cisco Social Network Security
 
Garpix - проекты и кейсы компании
Garpix - проекты и кейсы компанииGarpix - проекты и кейсы компании
Garpix - проекты и кейсы компании
 
Концепция платформы АН.2
Концепция платформы АН.2Концепция платформы АН.2
Концепция платформы АН.2
 
01 Sachkov
01 Sachkov01 Sachkov
01 Sachkov
 
Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)
 
Битрикс-Framework
Битрикс-FrameworkБитрикс-Framework
Битрикс-Framework
 
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
 
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
Инструментарий для создания дистрибутивов продуктов | Владимир СелинИнструментарий для создания дистрибутивов продуктов | Владимир Селин
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
 
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
 
Швейцарский нож для локализации сайта — Андрей Лежнин, getLoc
Швейцарский нож для локализации сайта — Андрей Лежнин, getLocШвейцарский нож для локализации сайта — Андрей Лежнин, getLoc
Швейцарский нож для локализации сайта — Андрей Лежнин, getLoc
 
Проектирование большого интернет-магазина
Проектирование большого интернет-магазинаПроектирование большого интернет-магазина
Проектирование большого интернет-магазина
 
Разработка интернет-магазина: от идеи до реализации
Разработка интернет-магазина: от идеи до реализацииРазработка интернет-магазина: от идеи до реализации
Разработка интернет-магазина: от идеи до реализации
 
SQL Server StreamIinsight - data processing in real time
SQL Server StreamIinsight - data processing in real timeSQL Server StreamIinsight - data processing in real time
SQL Server StreamIinsight - data processing in real time
 

Пишем свой сервис-агрегатор: архитектура, подводные камни