diff --git a/pom.xml b/pom.xml index 1492099..35dd59b 100644 --- a/pom.xml +++ b/pom.xml @@ -62,6 +62,12 @@ 1.6.2 + + org.jsoup + jsoup + 1.16.1 + + org.bouncycastle @@ -81,6 +87,12 @@ 1.8 + + net.sf.sociaal + freetts + 1.2.2 + + diff --git a/src/main/java/demo/RssGetDemo.java b/src/main/java/demo/RssGetDemo.java new file mode 100644 index 0000000..a025c68 --- /dev/null +++ b/src/main/java/demo/RssGetDemo.java @@ -0,0 +1,86 @@ +package demo; + +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; + +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.Date; +import java.util.Locale; + +public class RssGetDemo { + + private final static SimpleDateFormat rssDateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH); + + public static void main(String[] args) throws Exception { + //ruanyifeng(); + //helloGithub(); + //zhihu(); + //solidot(); + //maqianzu(); + //yuanshen(); + + } + + public static void ruanyifeng() throws Exception { + // 从URL获取RSS源 + Document doc = Jsoup.connect("https://www.ruanyifeng.com/blog/atom.xml").get(); + System.out.println(doc); + + // 使用CSS选择器来查找特定的元素 + Elements items = doc.select("entry"); + + for (Element item : items) { + String title = item.select("title").text(); + String link = item.select("link[rel=alternate]").attr("href"); + String description = item.select("summary").text(); + String pubDate = item.select("published").text(); + String content = item.select("content").text(); + + DateTimeFormatter formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME; + LocalDateTime dateTime = LocalDateTime.parse(pubDate, formatter); + Date date = Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant()); + + System.out.println("Title: " + title); + System.out.println("Link: " + link); + System.out.println("Description: " + description); + System.out.println("Publication Date: " + pubDate); + System.out.println("content" + content); + } + } + + public static void helloGithub() throws Exception { + getStandardRss("https://hellogithub.com/rss",86400000); + } + + public static void getStandardRss(String url,long time) throws Exception { + + // 从URL获取RSS源 + Document doc = Jsoup.connect(url).get(); + System.out.println(doc); + + // 使用CSS选择器来查找特定的元素 + Elements items = doc.select("item"); + + for (Element item : items) { + String title = item.select("title").text(); + String link = item.select("link").text(); + String description = item.select("description").text(); + String pubDate = item.select("pubDate").text(); + Date date = rssDateFormat.parse(pubDate); + + System.out.println("Title: " + title); + System.out.println("Link: " + link); + System.out.println("Description: " + description); + System.out.println("Publication Date: " + pubDate); + System.out.println("date :"+ date); + + long i = new Date().getTime() - date.getTime(); + System.out.println("时差:"+i); + } + } +} diff --git a/src/main/java/Feishu/FeiShu.java b/src/main/java/feishu/FeiShu.java similarity index 99% rename from src/main/java/Feishu/FeiShu.java rename to src/main/java/feishu/FeiShu.java index e46c955..1d86a85 100644 --- a/src/main/java/Feishu/FeiShu.java +++ b/src/main/java/feishu/FeiShu.java @@ -1,4 +1,4 @@ -package Feishu; +package feishu; import com.alibaba.fastjson2.JSONObject; import org.springframework.web.client.RestTemplate;