Агрегирование из разных источников - PullRequest
2 голосов
/ 10 сентября 2010

Это может быть проект, намного превосходящий мои навыки, но у меня есть около одного полного месяца, чтобы потратить на него, поэтому я думаю, что смогу это сделать.Что я хочу построить, так это: собирать новости о конкретной теме из разных источников.Легко, правда?Просто получите RSS-каналы и отобразите их на странице.Что ж, я хочу что-то более продвинутое: удаление дубликатов и настраиваемая презентация (то есть возможность определять / изменять формат отображения заголовков новостей).

Я немного поиграл с Yahoo Pipes инекоторые другие инструменты, и я столкнулся с двумя большими проблемами:

  1. Некоторые источники не предоставляют RSS-каналы.Как мне его создать?
  2. Какой лучший способ найти и удалить дубликаты.Я подумал о том, чтобы сравнить заголовки и проверить, есть ли совпадение, скажем, больше 50%.Хотя это хорошая практика?

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

Ответы [ 2 ]

1 голос
/ 13 сентября 2010

Дублирование - неприятная проблема. Что я в итоге и сделал:

  • 1. Удалите все HTML-теги, кроме ссылок (хотя я начал использовать регулярные выражения, я был сожжен. В конце концов я перешел к пользовательскому анализу для удаления тегов)
  • 2. Удалите все пробелы
  • 3. Case-десилицировать
  • 4. Хеш все это с MD5.

Вот почему вы оставляете ссылку в: Комментарий может быть таким простым, как «Да, это отстой». «Да, это отстой» может быть общим комментарием. НО, если текст «это отстой» связан с разными вещами, то это не дублирующий комментарий.

Кроме того, вы обнаружите, что экранирование тегов HTML странно для RSS-каналов. Вы могли бы подумать, что паразит <будет кодироваться дважды: (я думаю) & <; Но это не так. Закодировано < Но и теги HTML тоже! <p>

В конце концов я скопировал все известные теги HTML, проанализированные Mozilla Firefox, и вручную распознал эти теги.

Создание RSS-канала из HTML довольно неприятно, и я могу лишь указать вам на такие сервисы, как Spinn3r, которые отлично справляются с дедупликацией и извлечением контента. Эти сервисы обычно используют основанные на вероятности алгоритмы, которые выше меня. Я знаю одного провайдера, которому не нравились регулярные выражения (они должны были знать, что определенная страница была основана на MySpace или Blogger), но они не работали превосходно.

0 голосов
/ 10 сентября 2010

Возможно, вы захотите использовать модуль YQL для очистки веб-страницы, которая не предоставляет RSS. Вот пример оператора YQL для очистки HTML.

О дубликатах, взгляните на эту трубу .

Индивидуальная презентация: если вы хотите, чтобы она была действительно индивидуальной, вам придется самостоятельно управлять результатами конвейера, например, получите его как JSON, управляйте им с помощью Javascript или обработайте на стороне сервера.

...