Чтобы узнать, является ли данный URL-адрес RSS-фидом или нет - PullRequest
2 голосов
/ 09 августа 2010

У меня есть список URL-адресов, которые необходимо обработать, и результатом должны быть только URL-адреса RSS-канала в этом списке.

Как определить, является ли данная ссылка URL-адресом RSS-канала или нет.

Мне нужно собрать программу на Java, и, насколько вам известно, я новичок в Java.

Пожалуйста, кратко сообщите мне об этом.Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 09 августа 2010

Есть несколько вещей, которые вы можете попробовать, вне головы:

  1. Посмотрите, что Content-Type сервер возвращает для данного URL. Однако это может быть не окончательным, и сервер может не обязательно возвращать правильный заголовок.
  2. Попробуйте проанализировать содержимое URL-адреса как RSS и посмотреть, успешен ли он - это, вероятно, единственное окончательное доказательство того, что данный URL-адрес является RSS-лентой.
1 голос
/ 09 августа 2010

Документы RSS - это файл XML. Формат файла XML указан в спецификации RSS . Вы можете использовать анализаторы XML в Java для чтения и создания RSS-каналов.
Вот учебник, который может помочь: RSS-каналы с Java .

1 голос
/ 09 августа 2010

Учитывая только URL, нельзя быть уверенным на 100%.Файлы RSS обычно имеют формат .xml, но для этого суффикса не требуется (насколько я могу судить).Если вы просто классифицируете на основе ".xml" или нет, у вас будет много ошибок - классификация большого количества файлов, не относящихся к RSS, как RSS, и некоторых, которые являются файлами RSS, как не-RSS.убедитесь, что вам нужно получить файл по указанным URL-адресам и проанализировать его.Вы, вероятно, должны найти библиотеку, чтобы сделать это, потому что синтаксический анализ это, вероятно, кошмар.Эта библиотека выглядит разумно: http://www.davidpashley.com/projects/eddie.html Возможно, вы могли бы загрузить содержимое каждого URL-адреса, передать его в библиотеку, и, если библиотека успешно проанализирует, пометить его как канал RSS или Atom.У вас могут быть ложные отрицания, но они будут встречаться реже, чем если бы вы пытались классифицировать на основе одного URL.

Если все, что вас беспокоит, это RSS и производительность - это проблема (т.е. вы не хотитечтобы загрузить парсер SAX для каждого файла), вы можете прочитать спецификацию RSS (http://cyber.law.harvard.edu/rss/rss.html)) и просто выполнить простую строку для поиска файлов, которые выглядят широко, как будто они являются файлами RSS. У вас будет больше ложныхположительные (и, возможно, некоторые ложные отрицательные), но это будет быстрее. Все зависит от того, сколько времени вы хотите потратить на это и насколько вы должны быть. Но чтобы иметь какую-либо точность, вам нужно бытьзагружая каждый файл, чтобы проверить это.

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