diff --git a/backend/data/market_news_api.go b/backend/data/market_news_api.go index 172fbbc..f1c5ad8 100644 --- a/backend/data/market_news_api.go +++ b/backend/data/market_news_api.go @@ -1,9 +1,11 @@ package data import ( + "bytes" "encoding/json" "fmt" "github.com/PuerkitoBio/goquery" + "github.com/duke-git/lancet/v2/convertor" "github.com/duke-git/lancet/v2/strutil" "github.com/go-resty/resty/v2" "github.com/robertkrimen/otto" @@ -293,3 +295,26 @@ func (m MarketNewsApi) GetStockMoneyTrendByDay(stockCode string, days int) []map return *res } + +func (m MarketNewsApi) TopStocksRankingList(date string) { + url := fmt.Sprintf("http://vip.stock.finance.sina.com.cn/q/go.php/vInvestConsult/kind/lhb/index.phtml?tradedate=%s", date) + response, _ := resty.New().SetTimeout(time.Duration(5)*time.Second).R(). + SetHeader("Host", "vip.stock.finance.sina.com.cn"). + SetHeader("Referer", "https://finance.sina.com.cn"). + SetHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.60").Get(url) + + html, _ := (convertor.GbkToUtf8(response.Body())) + //logger.SugaredLogger.Infof("html:%s", html) + document, err := goquery.NewDocumentFromReader(bytes.NewReader(html)) + if err != nil { + return + } + document.Find("table.list_table").Each(func(i int, s *goquery.Selection) { + title := strutil.Trim(s.Find("tr:first-child").First().Text()) + logger.SugaredLogger.Infof("title:%s", title) + s.Find("tr:not(:first-child)").Each(func(i int, s *goquery.Selection) { + logger.SugaredLogger.Infof("s:%s", strutil.RemoveNonPrintable(s.Text())) + }) + }) + +} diff --git a/backend/data/market_news_api_test.go b/backend/data/market_news_api_test.go index 8c50ff9..3c0bd39 100644 --- a/backend/data/market_news_api_test.go +++ b/backend/data/market_news_api_test.go @@ -46,7 +46,6 @@ func TestGetMoneyRankSina(t *testing.T) { res := NewMarketNewsApi().GetMoneyRankSina("r3_net") for i, re := range res { logger.SugaredLogger.Debugf("key: %+v, value: %+v", i, re) - } } @@ -56,3 +55,6 @@ func TestGetStockMoneyTrendByDay(t *testing.T) { logger.SugaredLogger.Debugf("key: %+v, value: %+v", i, re) } } +func TestTopStocksRankingList(t *testing.T) { + NewMarketNewsApi().TopStocksRankingList("2025-05-19") +} diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 15fea9c..689bef0 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -36,7 +36,7 @@ const enableNews = ref(false) const contentStyle = ref("") const enableFund = ref(false) const enableDarkTheme = ref(null) -const content = ref('数据来源于网络,仅供参考;投资有风险,入市需谨慎') +const content = ref('数据来源于网络,仅供参考;投资有风险,入市需谨慎\n\n未经授权,禁止商业目的!') const isFullscreen = ref(false) const activeKey = ref('') const containerRef = ref({})