今天跟大家聊聊我最近折腾的“青山纸业新浪财经”这个事儿,纯粹是个人实践,记录一下过程。

事情是这样的,最近我对股票有点兴趣,想看看能不能自己捣鼓点啥出来。正好看到新浪财经上有青山纸业(600103)的信息,就寻思着能不能把这些数据抓下来,自己分析分析。
- 第一步:找数据源
- 第二步:写爬虫
- 第三步:数据清洗
- 第四步:数据分析
- 第五步:展示结果
最开始肯定是直接打开新浪财经的青山纸业页面,然后F12看看能不能直接找到API接口。结果发现数据是动态加载的,直接扒网页有点费劲。还功夫不负有心人,找到一个比较靠谱的数据接口,返回的是JSON格式,这就好办多。
有数据接口,那就开始撸代码。我用的是Python,主要是requests库负责请求数据,json库负责解析数据,再简单用pandas整理一下。代码很简单,就是模拟浏览器发送请求,然后把返回的JSON数据解析出来,存到本地。
数据抓下来之后,发现有些数据不太干净,比如有些字段是空的,有些数据格式不太统一。还得对数据进行清洗。主要就是处理缺失值、转换数据类型、统一数据格式等等。这一步比较繁琐,但是很重要,否则后续分析的结果可能就不准。
数据清洗干净之后,就可以开始分析。我主要关注几个指标:股价、成交量、换手率等等。然后,画一些简单的图表,看看股价的走势、成交量的变化等等。我不是专业的,所以分析也很粗浅,主要就是看看有没有啥异常情况。

我把分析的结果整理一下,做一个简单的报告。这个报告只是给自己看的,所以也没啥高大上的东西,就是一些图表和文字说明。
遇到的问题
整个过程中,也遇到一些问题:
- 反爬虫
- 数据更新
- 数据存储
新浪财经的反爬虫机制还是比较厉害的,如果请求太频繁,就会被封IP。我 пришлось设置请求间隔,降低爬虫的速度。也可以使用代理IP,但是我觉得没必要,毕竟只是个人学习,没必要搞那么复杂。
股票数据是实时更新的,所以需要定期运行爬虫,才能保证数据的时效性。我设置一个定时任务,每天定时运行爬虫,把最新的数据抓下来。
一开始我是把数据存到CSV文件里的,但是后来发现CSV文件不太方便管理,所以就改成存到SQLite数据库里。SQLite数据库比较轻量级,适合个人使用。
总结
这回实践,虽然没啥高深的技术,但是让我对股票数据分析有初步的解。也让我更加熟悉Python爬虫的流程。这只是一个开始,以后还会继续深入学习,争取能做出更有意思的东西。
这回“青山纸业新浪财经”的实践,让我收获很多。虽然过程有点辛苦,但是看到最终的结果,还是很有成就感的。


还没有评论,来说两句吧...