一直有爬取基金净值信息的需求,网上查了大致有撸网页源代码、天天基金网API、小熊同学API等方法。
撸网页源代码需要做浏览器头、定位要素位置、翻页、格式化清洗数据等工作,还面临网页不定期变动的情况,感觉门槛还是比较高的。
后来接触了天天基金网的API接口,GET一个url,返回一个JSON,然后通过列表去读取JSON,相当方便。但天天基金网的API不是很稳定,也有很多基金,类似QDII、海外的、不定期公布净值的等等,会出现空JSON的问题,后来无意中遇到了小熊同学
小熊同学是一个基金、股票数据源API,相当专业,数据全面,可以通过GET一次性获取20只基金,个别基金无数据的情况只会出现某个字段为空,不会整个JSON为空。
然后就用上小熊了,目前需要的基金数量才27只,没必要购买token。他的限制是一个GET最多20个基金,一小时最多刷100次,也就是一小时最多刷2000只基金,足够了。
毕竟JSON是高度格式化的数据,获取后不论是写Excel表还是写入数据库都非常方便,特别是Python的List可以包含子List,且容量巨大,一行基金净值信息一个子列表,多个子列表自然就形成了一个二维表,然后直接通过sqlite3的execute的INSERT语句,一次性导入数据库。效率是非常的高。
也可能是结构化数据的场景吧,API给的数据相当纯粹、干净、高效。