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

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 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题