weixin_42853935 2022-06-06 11:40 采纳率: 85.7%
浏览 522
已结题

PowerBI或python获取新浪财经期货线图或数据

请教列位dd,想在PowerBI里直接显示这张图,但是目前看来好像不行,所以想请教是否有python的dd能帮忙获取这个接口帮忙取出每日结算价格呢,方式方法不限,或者由PBI的dd能直接帮我show出这样图标或者线性数据或者表格数据都可以。

网址如下:https://finance.sina.com.cn/futures/quotes/SP0.shtml
类别:纸浆(SP0)

img

  • 写回答

5条回答 默认 最新

  • 嗨学编程 2022-06-07 15:59
    关注

    5日的数据

    import pprint
    import re
    import requests
    import csv
    
    f = open('data.csv', mode='a', encoding='utf-8', newline='')
    csv_writer = csv.DictWriter(f, fieldnames=[
        '日期',
        '时间',
        '价格',
        '均价',
        '成交',
    ])
    csv_writer.writeheader()
    url = 'https://stock2.finance.sina.com.cn/futures/api/jsonp.php/var%20t5nf_SP0=/InnerFuturesNewService.getFourDaysLine?symbol=SP0'
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36'
    }
    html_data = requests.get(url=url, headers=headers).text
    content = re.findall('var t5nf_SP0=\((.*?)\);', html_data)[0]
    content_1 = re.findall('\[(.*?)\],', content)
    for index in content_1:
        info_list = index.split(',')
        date_time = info_list[0].replace('"', '').replace('[', '')
        price = info_list[1].replace('"', '')
        price_1 = info_list[2].replace('"', '')
        clinch = info_list[3].replace('"', '')
        if len(info_list) == 7:
            date = info_list[-1].replace('"', '')
        dit = {
            '日期': date,
            '时间': date_time,
            '价格': price,
            '均价': price_1,
            '成交': clinch,
        }
        csv_writer.writerow(dit)
        print(dit)
    

    img

    年线数据

    import requests
    import re
    import json
    import csv
    
    f = open('年线data.csv', mode='a', encoding='utf-8', newline='')
    csv_writer = csv.DictWriter(f, fieldnames=[
        '日期',
        '开盘',
        '最高',
        '最低',
        '收盘',
        '成交量',
        '均价',
    ])
    csv_writer.writeheader()
    url = 'https://stock2.finance.sina.com.cn/futures/api/jsonp.php/var%20_SP02022_6_7=/InnerFuturesNewService.getDailyKLine?symbol=SP0&_=2022_6_7'
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36'
    }
    html_data = requests.get(url=url, headers=headers).text
    print(html_data)
    content = re.findall('\{(.*?)\}', html_data)
    for index in content:
        index_dict = '{' + index + '}'
        dit = json.loads(index_dict)
        print(dit)
        dit_content = {
            '日期': dit['d'],
            '开盘': dit['o'],
            '最高': dit['h'],
            '最低': dit['l'],
            '收盘': dit['c'],
            '成交量': dit['v'],
            '均价': dit['s'],
        }
        csv_writer.writerow(dit_content)
        print(dit)
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 6月16日
  • 已采纳回答 6月8日
  • 赞助了问题酬金200元 6月7日
  • 创建了问题 6月6日

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置