From e2d5c39805acef03672ee64e4ea0d35b3fad9ae1 Mon Sep 17 00:00:00 2001 From: Wonder Date: Thu, 16 Oct 2025 23:23:39 +0800 Subject: [PATCH] =?UTF-8?q?Feat:=20=E5=AE=9E=E7=8E=B0=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E5=9F=BA=E9=87=91=20id=20=E8=BF=94=E5=9B=9E=E6=8C=81=E4=BB=93?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E5=87=80=E5=80=BC=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/hezhaohui/fund/util/FundUtil.java | 25 +++++++++++++++++++ .../cn/hezhaohui/fund/util/FundUtilTest.java | 23 +++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/src/main/java/cn/hezhaohui/fund/util/FundUtil.java b/src/main/java/cn/hezhaohui/fund/util/FundUtil.java index 74d9b59..381c361 100644 --- a/src/main/java/cn/hezhaohui/fund/util/FundUtil.java +++ b/src/main/java/cn/hezhaohui/fund/util/FundUtil.java @@ -1,9 +1,18 @@ package cn.hezhaohui.fund.util; +import jakarta.annotation.Resource; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; import org.springframework.stereotype.Component; +import java.util.List; +import java.util.Map; + @Component public class FundUtil { + @Resource + private SoupUtil soupUtil; + final private static String PREFIX = "https://fund.eastmoney.com/"; final private static String SUFFIX = ".html"; @@ -11,4 +20,20 @@ public class FundUtil { public static String getUrlByFundId(String id) { return PREFIX + id + SUFFIX; } + + public List> getWorthByFundId(String id) { + String url = getUrlByFundId(id); + String content = WebUtil.getContentByUrl(url); + Elements parsedContent = soupUtil.parseContent(content); + Element worth = soupUtil.getWorth(parsedContent); + return soupUtil.parseTable(worth); + } + + public List> getHoldingsByFundId(String id) { + String url = getUrlByFundId(id); + String content = WebUtil.getContentByUrl(url); + Elements parsedContent = soupUtil.parseContent(content); + Element holdings = soupUtil.getHoldings(parsedContent); + return soupUtil.parseTable(holdings); + } } diff --git a/src/test/java/cn/hezhaohui/fund/util/FundUtilTest.java b/src/test/java/cn/hezhaohui/fund/util/FundUtilTest.java index 28cfe99..5cc7772 100644 --- a/src/test/java/cn/hezhaohui/fund/util/FundUtilTest.java +++ b/src/test/java/cn/hezhaohui/fund/util/FundUtilTest.java @@ -1,10 +1,19 @@ package cn.hezhaohui.fund.util; +import cn.hutool.core.lang.Assert; +import jakarta.annotation.Resource; import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +import java.util.List; +import java.util.Map; import static org.junit.jupiter.api.Assertions.*; +@SpringBootTest class FundUtilTest { + @Resource + private FundUtil fundUtil; @Test void getUrlByFundId() { @@ -12,4 +21,18 @@ class FundUtilTest { System.out.println(url); assertNotNull(url); } + + @Test + void getWorthByFundId() { + List> worth = fundUtil.getWorthByFundId("001068"); + Assert.notNull(worth); + System.out.println(worth); + } + + @Test + void getHoldingsByFundId() { + List> holdings = fundUtil.getHoldingsByFundId("001068"); + Assert.notNull(holdings); + System.out.println(holdings); + } } \ No newline at end of file