Есть ли способ распознавания RSS-ссылок из текстового кода HTML. Мне нужно закодировать в JAVA, чтобы извлечь эту ссылку из исходного кода HTML, но я не мог найти ни одного способа, как различные веб-сайты встраивают свои RSS-ссылки в HTML-код в Интернете. Некоторые веб-сайты используют «type = application/rss + xml», но не все, например, для find.com и cnn.com. Можно ли каким-либо образом создать код для любого веб-сайта?Признание RSS-ссылок в исходном HTML-коде
1
A
ответ
0
Я пока решил свою проблему, но я был бы признателен, если бы кто-нибудь мог сказать мне более сжатый и эффективный код. Я думаю, что мой код не так эффективен и его просто большой цикл, чтобы исправить небольшую проблему. Моя первая часть кода взята из сообщения пользователя911236 в stackoverflow.
МОЙ КОД:
общественности статической строки RSSLinkRetriever (String URL) {
String rssUrl = "";
try{
Document doc = Jsoup.connect(url).get();
Elements links = doc.select("link[type=application/rss+xml]");
if (links.size() > 0) {
rssUrl = links.get(0).attr("abs:href").toString();
}
else if(rssURLNews(url) != ""){
rssUrl = rssURLNews(url);
}
else if(rssURLrss(url) != "")
rssUrl = rssURLrss(url);
else{
rssUrl = "No URL found";
}
}
catch (IOException ex) {
Logger.getLogger(RSSReader.class.getName()).log(Level.SEVERE, null, ex);
}
return rssUrl;
}
общественные статические строковые rssURLNews (String URL) {
Document doc;
String str = "";
try {
doc = Jsoup.connect(url).get();
// get all links
Elements links = doc.select("a[href]");
for (Element link : links) {
if(link.text().equals("News")){
str = RSSLinkRetriever(link.attr("href"));
}
}
} catch (IOException e) {
e.printStackTrace();
}
return str;
}
общественности статической строки rssURLrss (String url) {
Document doc;
String str = "";
try {
doc = Jsoup.connect(url).get();
// get all links
Elements links = doc.select("a[href]");
for (Element link : links) {
if(link.text().equals("RSS")){
str = link.attr("href");
}
}
} catch (IOException e) {
e.printStackTrace();
}
return str;
}