Code ví dụ Java đọc RSS Feed (Java RSS Reader)

Code ví dụ Java đọc RSS Feed (Java RSS Reader).

RSS là gì?

RSS (Rich Site Summary hoặc Really Simple Syndication) là một loại ngôn ngữ được xây dựng dựa trên XML với mục đích phân phối thông tin (feed) tới người đọc một cách nhanh chóng và đơn giản.

RSS được dùng để tóm tăt, cập nhất các thông tin từ bài viết. Dùng làm dữ liệu cho các api.

RSS cũng là một loại XML service.

Ví dụ:

Spring MVC – Phần 15: RSS là gì? Tạo RSS Feed với Spring MVC

Code ví dụ Java RSS

RSS có định dạng dữ liệu là xml nên khi nhận data ta thường dùng các thư viện parse xml như JAXB để đọc các field.

Trong ví dụ này mình sẽ sử dụng thư viện rome chuyên dùng cho việc đọc tin rss.

Để sử dụng thư viện rome các bạn có thể khai báo dependency sau trong maven project

<dependency>
    <groupId>com.rometools</groupId>
    <artifactId>rome</artifactId>
    <version>1.12.0</version>
</dependency>

Lưu ý, groupId là com.rometools

Với version cũ hơn ta có group là rome, tuy nhiên với những version cũ này sẽ bị lỗi với một số định dạng rss, ví dụ:

<dependency>
  <groupId>rome</groupId>
  <artifactId>rome</artifactId>
  <version>1.0</version>
</dependency>

Demo:

package stackjava.com.readrss;

import java.net.URL;
import java.util.List;

import com.rometools.rome.feed.synd.SyndEntry;
import com.rometools.rome.feed.synd.SyndFeed;
import com.rometools.rome.io.SyndFeedInput;
import com.rometools.rome.io.XmlReader;

public class Demo {
  public static void main(String[] args) throws Exception {
    String url = "https://stackjava.com/feed";
//		String url = "https://www.24h.com.vn/upload/rss/trangchu24h.rss";
//		String url = "https://vnexpress.net/rss/tin-moi-nhat.rss";
    URL feedUrl = new URL(url);
    SyndFeedInput input = new SyndFeedInput();
    SyndFeed feed = input.build(new XmlReader(feedUrl));
    for (SyndEntry entry : (List<SyndEntry>) feed.getEntries()) {
      System.out.println("-----------------------------");
      System.out.println("Title : " + entry.getTitle());
      System.out.println("Author: "+entry.getAuthor());
      System.out.println("Link  : "+entry.getLink());
    }
  }
}

Kết quả:

-----------------------------
Title : CompletableFuture là gì? Code ví dụ Java CompletableFuture (Java 8)
Author: cuongth
Link  : https://stackjava.com/java8/completablefuture-la-gi-code-vi-du-java-completablefuture-java-8.html
-----------------------------
Title : Code ví dụ Callable, Future, Executors trong Java
Author: cuongth
Link  : https://stackjava.com/java/code-vi-du-callable-future-executors-trong-java.html
-----------------------------
Title : So sánh Future và CompletableFuture trong Java
Author: cuongth
Link  : https://stackjava.com/java/so-sanh-future-va-completablefuture-trong-java.html
-----------------------------
Title : Code ví dụ Spring Boot xử lý Exception, lỗi 404
Author: cuongth
Link  : https://stackjava.com/spring-boot/code-vi-du-spring-boot-xu-ly-exception-loi-404.html
-----------------------------
Title : Spring Boot tùy chỉnh trang Whitelabel Error Page
Author: cuongth
Link  : https://stackjava.com/spring-boot/spring-boot-tuy-chinh-trang-whitelabel-error-page.html
-----------------------------
Title : Code ví dụ Spring Boot Inject bean với ApplicationContextAware
Author: cuongth
Link  : https://stackjava.com/spring-boot/code-vi-du-spring-boot-inject-bean-applicationcontextaware.html
...

Để lấy tin rss mới nhất, các bạn có thể tạo vòng lặp, cứ mấy phút thì gọi lại một lần.

Các bạn có thể dùng ví dụ trên để làm phần mềm đọc báo, lấy rss về để hiển thị danh sách các bài, khi click vào một bài thì sẽ đọc link và tải dữ liệu bài báo đó về …

 

Okay, done!

Download code ví dụ trên tại đây.

stackjava.com