Java получает ссылку RSS из исходного кода HTML с использованием JSOUP

Я пытаюсь получить ссылку RSS из исходного кода html. Я использовал java-библиотеку Jsoup, чтобы найти ссылку RSS. Я написал небольшой код для получения RSS-ссылок, но, к сожалению, он работает не на всех сайтах. Ниже мой код

String url = "http://www.smashingmagazine.com/"; // not working
Document doc = Jsoup.connect(url).get();
Elements links = doc.select("link[type=application/rss+xml]");

if (links.size() > 0) {
    String rss_url = links.get(0).attr("href").toString();
} else {
    // RSS url not found
}

Приведенный выше код работает не для всех веб-сайтов. Пожалуйста, решите мою проблему. (Я пытаюсь найти ссылки RSS 2.0)

Благодарю вас


person user911236    schedule 27.05.2012    source источник
comment
Почему бы вам не пойти разбить RSS-канал журнала и не проанализировать его с помощью RSS parser like Rome на основе Java. Описанный выше процесс можно повторить практически с любым сайтом, предоставляющим RSS-каналы.   -  person RanRag    schedule 27.05.2012
comment
Нет, URL-адрес не является статическим. Пользователь может указать любой URL-адрес веб-сайта, мне нужно найти URL-адрес RSS и проанализировать его.   -  person user911236    schedule 27.05.2012
comment
Если вы посмотрите на свою веб-страницу, на ней нет application/rss+xml, а есть application/atom+xml.   -  person RanRag    schedule 27.05.2012
comment
Спасибо, РанРаг. Но в этом URL-адресе dtscinema.com, если вы видите исходный код, application/rss+xml все еще присутствует, я не получаю URL-адрес RSS.   -  person user911236    schedule 27.05.2012
comment
Вы уверены, что сайт dtscinema.com, потому что, когда я пытаюсь открыть его отсюда, срок действия домена истек.   -  person RanRag    schedule 27.05.2012
comment
Извините, это dtscinema.in   -  person user911236    schedule 27.05.2012
comment
Он отлично работает для меня. Я запустил ваш код для dtscinema.in и получил результат http://www.dtscinema.in/feeds/posts/default?alt=rss. Вы уверены, что печатаете значение rss_url внутри if statement, потому что код, который вы разместили здесь, ничего не печатает, если URL-адрес найден.   -  person RanRag    schedule 27.05.2012
comment
Действительно. Хорошо, я еще раз проверю свой код. Спасибо за помощь.   -  person user911236    schedule 27.05.2012


Ответы (1)


ответ :

String url = "http://www.smashingmagazine.com/"; // not working
Document doc = Jsoup.connect(url).get();

Elements links = doc.select("link[type=application/rss+xml]");

if (links.size() > 0) {
    String rss_url = links.get(0).attr("abs:href").toString();
} else {....
    // RSS url not found
}

Я надеюсь, что это будет хорошо для вас. Он работает с .attr(*"abs:*href").

Эрту

person Ertu    schedule 26.06.2012