2015-05-09 3 views
1

Есть ли способ распознавания RSS-ссылок из текстового кода HTML. Мне нужно закодировать в JAVA, чтобы извлечь эту ссылку из исходного кода HTML, но я не мог найти ни одного способа, как различные веб-сайты встраивают свои RSS-ссылки в HTML-код в Интернете. Некоторые веб-сайты используют «type = application/rss + xml», но не все, например, для find.com и cnn.com. Можно ли каким-либо образом создать код для любого веб-сайта?Признание RSS-ссылок в исходном HTML-коде

ответ

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; 
}