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

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

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

img

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

每三秒更新一次数据,只爬纸浆下面那几个数据的话是可以的,我试试去

可以用requests.get获取数据,链接接口为:
https://stock2.finance.sina.com.cn/futures/api/jsonp.php/var%20t1nf_SP0=/InnerFuturesNewService.getMinLine
然后用matplotlib画出走势图。

是只要结算价吗? 是一天一个?还是要历史的

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632