Как программно определить, является ли RSS-канал полным или частичным - PullRequest
10 голосов
/ 06 февраля 2009

Мне нужно было бы программно определить, представляет ли RSS-канал полный контент своих статей или только их фрагменты. Как бы вы это сделали?

Ответы [ 3 ]

6 голосов
/ 06 февраля 2009

Найдите ссылку в конце, на которой написано «Больше», «Продолжение», «Полная статья», «...» или подобное. Если вы не хотите переходить по каждой ссылке на странице и искать текст в ленте, а также, возможно, дополнительную информацию.

4 голосов
/ 06 февраля 2009

Я не думаю, что есть очень чистый способ сделать это, но вот два "хакерских":

Я бы анализировал текст RSS и искал любые ссылки, выходящие из него. Конечно, там может быть несколько ссылок (некоторые на другие посты в блоге), но если вы сосредоточитесь на последней и попытаетесь придумать несколько эвристических слов для названия ссылки (то есть «больше», «прочитать полностью "и т. д.), вы должны быть в состоянии получить их много. Для большей уверенности вы можете посмотреть только те ссылки, которые указывают на исходный блог.

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

0 голосов
/ 06 февраля 2009

Почему бы не следовать по URL-адресу из RSS-ленты и проверить, есть ли на этой странице больше текста, чем в RSS-канале? Вам нужно взять html-парсер и ввести некоторые общие правила.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...