当前位置: 首页 > news >正文

go语言访问新浪股票

package mainimport ("encoding/json""fmt""io""log""net/http""os""time"
)// StockData 定义股票数据结构
type StockData struct {Symbol        string `json:"symbol"`        // 股票符号Code          string `json:"code"`          // 股票代码Name          string `json:"name"`          // 股票名称Trade         any    `json:"trade"`         // 当前价格PriceChange   any    `json:"pricechange"`   // 价格变动ChangePercent any    `json:"changepercent"` // 涨跌幅Buy           any    `json:"buy"`           // 买入价Sell          any    `json:"sell"`          // 卖出价Settlement    any    `json:"settlement"`    // 结算价Open          any    `json:"open"`          // 开盘价High          any    `json:"high"`          // 最高价Low           any    `json:"low"`           // 最低价Volume        any    `json:"volume"`        // 成交量Amount        any    `json:"amount"`        // 成交额TickTime      string `json:"ticktime"`      //PER           any    `json:"per"`           // 市盈率PB            any    `json:"pb"`            // 市净率Mktcap        any    `json:"mktcap"`        // 总市值Nmcap         any    `json:"nmcap"`         // 流通市值TurnoverRatio any    `json:"turnoverratio"` // 换手率
}// APIResponse API响应结构
type APIResponse struct {Data []StockData `json:"data"`
}func main() {fmt.Println("开始获取新浪财经股票数据...")// 存储所有股票数据var allStocks []StockDatapage := 1for {fmt.Printf("正在获取第 %d 页数据...\n", page)// 构建API URLurl := fmt.Sprintf("https://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData?page=%d&num=100&sort=symbol&asc=0&node=hs_a", page)// 发送HTTP请求resp, err := http.Get(url)if err != nil {log.Printf("第 %d 页请求失败: %v", page, err)break}// 读取响应体body, err := io.ReadAll(resp.Body)resp.Body.Close()if err != nil {log.Printf("读取第 %d 页响应失败: %v", page, err)break}// 检查是否返回空数组if string(body) == "[]" {fmt.Printf("第 %d 页返回空数组,数据获取完成\n", page)break}// 解析JSON数据var stocks []StockDataerr = json.Unmarshal(body, &stocks)if err != nil {log.Printf("解析第 %d 页JSON失败: %v", page, err)log.Printf("响应内容: %s", string(body))break}// 检查是否获取到数据if len(stocks) == 0 {fmt.Printf("第 %d 页没有数据,数据获取完成\n", page)break}// 添加到总数据中allStocks = append(allStocks, stocks...)fmt.Printf("第 %d 页获取到 %d 条数据,累计 %d 条数据\n", page, len(stocks), len(allStocks))// 翻页page++// 添加延迟,避免请求过于频繁time.Sleep(500 * time.Millisecond)}// 输出统计信息fmt.Printf("\n数据获取完成!总共获取到 %d 条股票数据\n", len(allStocks))// 显示前10条数据作为示例if len(allStocks) > 0 {fmt.Println("\n前10条股票数据示例:")fmt.Println("========================================================================================================")fmt.Printf("%-10s %-20s %-8s %-8s %-8s %-12s %-12s\n","代码", "名称", "当前价", "涨跌", "涨跌幅", "成交量", "成交额")fmt.Println("========================================================================================================")for i := 0; i < 10 && i < len(allStocks); i++ {stock := allStocks[i]fmt.Printf("%-10s %-20s %-8s %-8s %-8s %-12s %-12s\n",stock.Symbol, stock.Name, stock.Trade, stock.PriceChange,stock.ChangePercent, stock.Volume, stock.Amount)}}// 保存数据到文件saveToFile(allStocks)
}// saveToFile 将数据保存到JSON文件
func saveToFile(stocks []StockData) {fileData, err := json.MarshalIndent(stocks, "", "  ")if err != nil {log.Printf("序列化数据失败: %v", err)return}err = os.WriteFile("stock_data.json", fileData, 0644)if err != nil {log.Printf("保存文件失败: %v", err)return}fmt.Printf("\n数据已保存到 stock_data.json 文件\n")
}
http://icebutterfly214.com/news/15475/

相关文章:

  • Python私教FastAPI+React构建Web应用03 FARM技术栈介绍 - 教程
  • Java基础加强13-集合框架、Stream流 - 指南
  • leetcode热题100-49:字母异位词分组
  • YACS2025年10月乙组
  • Windows11升级专业版密钥
  • 把 1 GHz 做成一粒米”——成都恒利泰科技 HT-LFCG-1000+
  • 2025年钢带波纹管批发厂家权威推荐榜单:hdpe钢带波纹管/钢带管/钢带增强聚乙烯螺旋波纹管源头厂家精选
  • 2025年乐博智家保鲜盒直销厂家权威推荐榜单:乐博智家冰沙杯/乐博智家炒冰机/乐博智家刨冰机源头厂家精选
  • 2025年粉末涂料排行榜推荐,粉末涂料公司全解析
  • hive在虚拟机中的部署
  • 超越简单的回放:深度解析国标GB28181算法算力平台EasyGBS的录像检索与回放技术
  • 2025 年 11 月中小企业财税合规服务权威推荐榜:专业筹划与风险防控口碑之选
  • 字段(辨析:字段、对象、属性和方法在 JavaScript 中的关系)
  • Grafana12安装部署
  • 图的dfs和bfs遍历
  • 2025年工业铝型材安全定制厂家推荐:工业铝型材定制实力供应商
  • vue3中英文转换方案(使用 Vue I18n)
  • mssql db_owner权限sql注入
  • 三场比赛(四)
  • mssql public权限sql注入
  • 2025 国内外运维监控厂商选型指南:锚定国产化与信创,国产监控产品如何破局?
  • 7-1 API使用与字符串处理
  • 2025年改性pp阻燃母料订购源头厂家权威推荐榜单:丽水pp阻燃改性/pp的阻燃改性/阻燃改性PP源头厂家精选
  • 国债ETF收益规律发现及应用
  • 2025年11月治疗失眠的专家推荐:市场报告与榜单全解析
  • 2025 年实验室 CMA/CNAS 认证咨询公司全新推荐
  • AT_abc200_d [ABC200D] Happy Birthday! 2 题解报告
  • 详细介绍:安全框架 SpringSecurity 入门(超详细,IDEA2024)
  • Web开发的坑
  • FT232RL FT232R国产替代芯片GP232RNL GP232RL高稳定性USB转串口桥接芯片