识别 HTML 源代码中的 RSS 链接
Recognizing RSS Links in HTML source code
有没有办法从 HTML 文本代码中识别 RSS links。我需要在 JAVA 中编写代码以从 HTML 源代码中提取此 link 但我无法找到不同网站如何将其 RSS Link 嵌入 [=16] 的单一方法=] 网页代码。一些网站使用 "type=application/rss+xml" 但并非全部用于例如 discovery.com 和 cnn.com。我可以为任何网站编写代码吗?
我暂时已经解决了我的问题,但如果有人能告诉我更简洁高效的代码,我将不胜感激。我认为我的代码效率不高,它只是一个解决小问题的大循环。我的第一部分代码取自用户 911236 在 Whosebug 上的 post。
我的代码:
public 静态字符串 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;
}
public static String 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;
}
public static String 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;
}
有没有办法从 HTML 文本代码中识别 RSS links。我需要在 JAVA 中编写代码以从 HTML 源代码中提取此 link 但我无法找到不同网站如何将其 RSS Link 嵌入 [=16] 的单一方法=] 网页代码。一些网站使用 "type=application/rss+xml" 但并非全部用于例如 discovery.com 和 cnn.com。我可以为任何网站编写代码吗?
我暂时已经解决了我的问题,但如果有人能告诉我更简洁高效的代码,我将不胜感激。我认为我的代码效率不高,它只是一个解决小问题的大循环。我的第一部分代码取自用户 911236 在 Whosebug 上的 post。
我的代码:
public 静态字符串 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;
}
public static String 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;
}
public static String 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;
}