mirror of
https://github.com/ArvinLovegood/go-stock.git
synced 2025-07-19 00:00:09 +08:00
feat(data):添加获取国内生产总值(GDP)功能
- 实现了从东财数据中心获取GDP数据的功能 - 新增GDP数据结构用于解析获取的数据 - 添加了获取GDP数据的测试用例
This commit is contained in:
parent
e05ff94aba
commit
dd3c231637
@ -701,3 +701,34 @@ func (m MarketNewsApi) ClsCalendar() []any {
|
|||||||
err = json.Unmarshal(resp.Body(), &respMap)
|
err = json.Unmarshal(resp.Body(), &respMap)
|
||||||
return respMap["data"].([]any)
|
return respMap["data"].([]any)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m MarketNewsApi) GetGDP() {
|
||||||
|
url := "https://datacenter-web.eastmoney.com/api/data/v1/get?callback=data&columns=REPORT_DATE%2CTIME%2CDOMESTICL_PRODUCT_BASE%2CFIRST_PRODUCT_BASE%2CSECOND_PRODUCT_BASE%2CTHIRD_PRODUCT_BASE%2CSUM_SAME%2CFIRST_SAME%2CSECOND_SAME%2CTHIRD_SAME&pageNumber=1&pageSize=20&sortColumns=REPORT_DATE&sortTypes=-1&source=WEB&client=WEB&reportName=RPT_ECONOMY_GDP&p=1&pageNo=1&pageNum=1&_=" + strconv.FormatInt(time.Now().Unix(), 10)
|
||||||
|
resp, err := resty.New().SetTimeout(time.Duration(30)*time.Second).R().
|
||||||
|
SetHeader("Host", "datacenter-web.eastmoney.com").
|
||||||
|
SetHeader("Origin", "https://datacenter.eastmoney.com").
|
||||||
|
SetHeader("Referer", "https://data.eastmoney.com/cjsj/gdp.html").
|
||||||
|
SetHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:140.0) Gecko/20100101 Firefox/140.0").
|
||||||
|
Get(url)
|
||||||
|
if err != nil {
|
||||||
|
logger.SugaredLogger.Errorf("GDP err:%s", err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
body := resp.Body()
|
||||||
|
logger.SugaredLogger.Debugf("GDP:%s", body)
|
||||||
|
vm := otto.New()
|
||||||
|
vm.Run("function data(res){return res};")
|
||||||
|
|
||||||
|
val, err := vm.Run(body)
|
||||||
|
if err != nil {
|
||||||
|
logger.SugaredLogger.Errorf("GDP err:%s", err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
data, _ := val.Object().Value().Export()
|
||||||
|
logger.SugaredLogger.Infof("GDP:%v", data)
|
||||||
|
marshal, err := json.Marshal(data)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
logger.SugaredLogger.Infof("GDP:%s", marshal)
|
||||||
|
}
|
||||||
|
@ -175,3 +175,7 @@ func TestClsCalendar(t *testing.T) {
|
|||||||
}
|
}
|
||||||
logger.SugaredLogger.Debugf("md:\n %s", md.String())
|
logger.SugaredLogger.Debugf("md:\n %s", md.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetGDP(t *testing.T) {
|
||||||
|
NewMarketNewsApi().GetGDP()
|
||||||
|
}
|
||||||
|
@ -370,3 +370,16 @@ type HotEvent struct {
|
|||||||
StatusCount int `json:"status_count"`
|
StatusCount int `json:"status_count"`
|
||||||
Content string `json:"content"`
|
Content string `json:"content"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type GDP struct {
|
||||||
|
REPORTDATE string `json:"REPORT_DATE" md:"报告时间"`
|
||||||
|
TIME string `json:"TIME" md:"报告期"`
|
||||||
|
DOMESTICLPRODUCTBASE float64 `json:"DOMESTICL_PRODUCT_BASE" md:"国内生产总值(亿元)"`
|
||||||
|
SUMSAME float64 `json:"SUM_SAME" md:"国内生产总值同比增长(%)"`
|
||||||
|
FIRSTPRODUCTBASE float64 `json:"FIRST_PRODUCT_BASE" md:"第一产业(亿元)"`
|
||||||
|
FIRSTSAME int `json:"FIRST_SAME" md:"第一产业同比增长(%)"`
|
||||||
|
SECONDPRODUCTBASE float64 `json:"SECOND_PRODUCT_BASE" md:"第二产业(亿元)"`
|
||||||
|
SECONDSAME float64 `json:"SECOND_SAME" md:"第二产业同比增长(%)"`
|
||||||
|
THIRDPRODUCTBASE float64 `json:"THIRD_PRODUCT_BASE" md:"第三产业(亿元)"`
|
||||||
|
THIRDSAME float64 `json:"THIRD_SAME" md:"第三产业同比增长(%)"`
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user