1
是否有方法從HTML文本代碼中識別RSS鏈接。我需要用JAVA編碼來從HTML源代碼中提取這個鏈接,但我無法找到不同網站將RSS鏈接嵌入到網頁HTML代碼中的方式。有些網站使用「type = application/rss + xml」,但並非全部用於例如discovery.com和cnn.com。有什麼方法可以爲任何網站編碼?識別HTML源代碼中的RSS鏈接
是否有方法從HTML文本代碼中識別RSS鏈接。我需要用JAVA編碼來從HTML源代碼中提取這個鏈接,但我無法找到不同網站將RSS鏈接嵌入到網頁HTML代碼中的方式。有些網站使用「type = application/rss + xml」,但並非全部用於例如discovery.com和cnn.com。有什麼方法可以爲任何網站編碼?識別HTML源代碼中的RSS鏈接
我已經解決了我暫時的問題,但如果有人能告訴我更簡潔高效的代碼,我將不勝感激。我認爲我的代碼不是那麼高效,它只是解決小問題的一個大循環。我的第一部分代碼是從user911236的帖子上取得的。
我的代碼:
公共靜態字符串RSSLinkRetriever(字符串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(字符串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(字符串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;
}