Как программно определить, является ли RSS-канал полной подачей или частичной подачей

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

Ответ 1

Ищите ссылку в конце, которая говорит "Больше", "Продолжение", "Полная статья", "..." или аналогичная. Если вы не хотите следить за каждой ссылкой на странице и искать текст из фида плюс дополнительно, возможно.

Ответ 2

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

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

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

Ответ 3

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