大家好,我是毕加锁。
今天给大家带来的是 Python实战,爬取金融期货数据
文末送书! 文末送书! 文末送书!
任务简介
首先,客户原需求是获取https://hq.smm.cn/copper网站上的价格数据(注:获取的是网站上的公开数据),如下图所示:
如果以该网站为目标,则需要解决的问题是“登录”用户,再将价格解析为表格进行输出即可。但是,实际上客户核心目标是获取“沪铜CU2206”的历史价格,虽然该网站也有提供数据,但是需要“会员”才可以访问,而会员需要氪金......
数据的价值!!!
鉴于,客户需求仅仅是“沪铜CU2206”一项期货的历史价格,氪金会员性价比不高,因此,实际的任务目标变为如何获取的历史价格,目标变为全网有公开提供数据的网址。而最终解决该问题,是求助于万能的百度^_^。找到了合适的网站,且获取数据的难度也几乎降到了最低难度。
解决步骤
百度搜索资源:这个步骤是整个任务完整的最难点(实际不难),但这里卖个关子,全文不公布最终找到的网站,大家试试看能否搜索到,以及花费多少时间^_^。
解析网站的请求,最终找到的网站经解析后,发现获取数据是通过get的方式提交参数。而请求的参数如下:/price?starttime=1638545822&endtime=1654357022&classid=48
,一看就知是开始时间、结束时间的时间戳,以及商品id。再解析headers,居然连cookie都不需要,说明没有反爬!没有反爬!没有反爬!不得不说运气爆棚!
解析响应数据:由于响应数据是规整的json格式数据,使用pandas的read_json直接能够获取dataframe格式的数据,该步骤也并无难度。
代码实现
鉴于网站没有反爬,且参数简单,实际上的任务主要是规划一下如何设计增量更新数据信息的流程,具体代码如下:
总结
从技术角度来看,经过一步步解析,任务是简单的,入门requests爬虫以及入门pandas数据分析就可以完成(唯一的难度在找到合适的目标)。但是换个角度,从经济价值来看,又是很有价值的,即节约了某网站高昂的年费(注:并不是说年费不值得,只是局限在需求仅仅是CU2206一项数据上时,性价比太低),同时又避免了人工操作的繁琐,以及可能产生的错误。用很小的学习成本就能解决大大的问题,所以,还等什么呢?开启Python之路吧!
送书福利
图书简介◆
《Python金融量化分析》是有关Python在金融量化分析领域应用的一本从入门到精通类图书。全书分4篇共10章。第1篇(第1~3章)简单介绍了Python的基础知识,包括数据类型、循环体、函数、类与面向对象,以及常用的标准库与扩展库;第2篇(第4~6章)介绍了Python在金融量化交易中的应用,包括资产类别、衍生品等金融基础知识,数学与统计学基础知识,以及量化投资策略开发的一般化流程;第3篇(第7、8章)介绍了Python在量化风险管理中的应用,包括风险类别的介绍、市场因子的模拟,以及投资组合优化;第4篇(第9、10章)用5个实战案例具体演示了Python在金融量化分析中的应用。