量化投资从0开始系列 ---- 15. 郑商所日统计数据

前面已经提取了其它期货交易所的数据,最后还剩下郑商所。相比而言,郑商所的数据获取比其它几个交易所更麻烦一点。因为郑商所的系统接口有两个,在2015年11月11日前后发生了切换,这个日期之前是老系统的api接口,这个日期之后是一个新的api接口。

具体的地址在哪里,还是依靠在浏览器中按F12来确定,最后发现的地址是:

        if trade_date > '20151111':
            czce_url = f'http://www.czce.com.cn/cn/DFSStaticFiles/Future/{trade_date[0:4]}/{trade_date}/FutureDataDaily.htm'
        else:
            czce_url = f'http://www.czce.com.cn/cn/exchange/{trade_date[0:4]}/datadaily/{trade_date}.htm'

数据格式方面,郑商所的情况跟大商所有些类似,都是返回一个html子页面,然后也提供txt和excel文件下载。因为之前已经处理过txt的格式,这里我们就来直接用http的格式处理一次。

其实http数据的处理也有很多方式,下面的代码就用python自带的HTMLParser来做这件事。这样做最大的优点是不用引入其它第三方的库了。

r = requests.get(czce_url, headers=headers)
parser = CzceHtmlParser()
parser.feed(r.content.decode())
data_origin = parser.data

这里的CsceHtmlParser要自己实现:

class CzceHtmlParser(HTMLParser):
    def __init__(self):
        super().__init__()
        self.in_table = False
        self.in_tr = False
        self.in_td = False
        self.last_tag = None
        self.data = []

    def handle_starttag(self, tag, attrs):
        self.last_tag = tag
        if tag == 'table' and (('id', 'senfe') in attrs or ('id', 'tab1') in attrs):
            self.in_ta
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

blkq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值