Giter Club home page Giter Club logo

simple-news-aggregator's Introduction

simple-news-aggregator

logo

Задеплоенный, запущенный проект: http://jquiz.azurewebsites.net/newsaggregator/
(хостинг неторопливый, поэтому лучше смотреть на локальном компьютере :)

Задание:

Нужно написать агрегатор новостей. Пользователь подает на вход адрес новостного сайта или его RSS-ленты и правило парсинга (формат правила — на усмотрение разработчика).

  1. Интерфейс — веб. Остальное на выбор разработчика.
  2. Правило — некий текст, из которого модуль должен понять, как парсить тот или иной сайт. Причем это может быть и не rss.

База данных агрегатора начинает автоматически пополняться новостями с этого сайта.
У пользователя есть возможность просматривать список новостей из базы и искать их по подстроке в заголовке новости.
В качестве примера требуется подключить два любых новостных сайта на выбор.
Результат — исходный код агрегатора, а также рабочие адреса и правила парсинга, которые можно подать ему на вход. Язык — Java. Хранилище — любая реляционная база данных. Плюсом будет использование ORM Hibernate.

Правила парсинга:

type=auto/user
content-type=xml/html
feed-tag=... [optional]
feed-class=...
channel-tag=... [optional]
channel-className=... [optional]
item-class=...
item-tag=... [optional]
title-class=...
title-tag=...[optional]
description-class=...
description-tag=...[optional]
publishedDate-class=... [optional]
publishedDate-tag=... [optional]
link-class=... [optional]
link-tag=... [optional]

Пример (https://news.yandex.ru/):

type=user
content-type=html
feed-tag=div
feed-class=rubric
channel-tag=a
channel-className=title
item-class=story__content
item-tag=div
title-class=story__title
title-tag=a
description-class=story__text
description-tag=div

type=user
content-type=html
feed-tag=div
feed-class=cols
channel-tag=a
channel-className=title
item-class=newsitem
item-tag=div
title-class=newsitem__title
title-tag=a
description-class=newsitem__text
description-tag=div

Пример (https://lenta.ru/rss/):

type=user
content-type=xml
channel-tag=channel
item-tag=item
title-tag=title
description-tag=description
publishedDate-tag=pubDate
link-tag=link

Другие сайты для тестирования (правило парсинга: type=auto):

https://snob.ru/rss/all
http://www.pravda.com.ua/rss/

simple-news-aggregator's People

Contributors

a-poliakov avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.