RSS парсер, проверка на новые сообщения

Nawex

Новичок
Здравствуйте,
написал парсер RSS, который берет из ленты название поста, текст и дату создания и все это заносит в MySql. Далее при повторном обращении к этой ленте скрипт как-то должен понять какие сообщения уже есть в базе данных и пропустить их, а какие нужно добавить в базу.

Как провести проверку на наличие конкретного сообщения в базе?

Я беру из каждого сообщения в ленте название и дату создания и сравниваю на наличие в базе данных сообщения с такими же названием и датой, если такого не нахожу, то добавляю сообщение в базу.

Почему-то иногда такая проверка не проходит и в базу добавляется несколько одинаковых сообщений.
Может есть какое-то более изящное решение? Подскажите пожалуйста.
 

Beavis

Banned
бери дату последней сохраненной новости, и обрабатывай только новости которые новее этой даты
 

Beavis

Banned
Не понял вопроса..
В ленту и должны попадать разные новости
 

Linker

Новичок
Nawex

Если ваше упоминание RSS не для "красного словца" то есть такая подстрока, например:
<guid>...</guid>
в ней, как правило, уникальный идентификатор блока, по которому можно сверить, есть он уже, или нет ещё.
 

Nawex

Новичок
Не понял вопроса..
В ленту и должны попадать разные новости
Например: у меня уже есть в базе новость1 с датой "01 Jul 2012 19:52:51", а в ленте есть и новость1 с датой "01 Jul 2012 19:52:51" и новость2 с этой же датой "01 Jul 2012 19:52:51". Ну так получилось что вторая новость добавилась в ленту на полсекунды позже первой и скрипт при проходе ее не увидел. А когда повторно скрипт просматривает ленту, то уже смотрит дату старше и соответственно снова не видит новость2. Такое может быть? или это из области фантастики?
 

Nawex

Новичок
Nawex

Если ваше упоминание RSS не для "красного словца" то есть такая подстрока, например:
<guid>...</guid>
в ней, как правило, уникальный идентификатор блока, по которому можно сверить, есть он уже, или нет ещё.
Пример:

<item>
<guid isPermaLink='true'>http://ibigdan.livejournal.com/11194417.html</guid>
<pubDate>Mon, 02 Jul 2012 09:00:11 GMT</pubDate>
<title>Придумайте название :)</title>
<link>http://ibigdan.livejournal.com/11194417.html</link>

Вижу аналогию с <link>, идентификатора не вижу, посмотрел еще в нескольких лентах - тоже нет идентификаторов.
 

DYPA

Настоящая dypa (c)
Nawex

Если ваше упоминание RSS не для "красного словца" то есть такая подстрока, например:
<guid>...</guid>
в ней, как правило, уникальный идентификатор блока, по которому можно сверить, есть он уже, или нет ещё.
должен быть по стандарту - но часто его не бывает, советую проверять так:
если есть guid и он верный то отличать посты по нему, если нет то по link, а если ничего нет - то по хешу от заголовка и первых например 512 символов текста
стандарт - стандартом, а многие не удосуживаются его читать прежде чем писать код выдачи rss новостей на сайте!
 
Сверху