python 获取网页表格数据_python实战4获取tushare数据

 2023-09-07 阅读 24 评论 0

摘要:python4实战4获取Tushare数据阅读之前请注意:代码都为红色。由于公众号宽度不够,没有特别注明,即使换行都是同一句代码,中间没有换行符。如果是两行代码,会用空行隔开。python爬取网络数据、SQL语句请注意末尾的分号 “;”目前进

python

4

实战4

获取Tushare数据

阅读之前请注意:

代码都为红色。由于公众号宽度不够,没有特别注明,即使换行都是同一句代码,中间没有换行符。如果是两行代码,会用空行隔开。

python爬取网络数据、SQL语句请注意末尾的分号     “;”

目前进度:

cd92d6e1d03303a92dde986428159e56.png

 之前是为数据搭好了一个家。标题是python实战,但是python好像都没有使用过,大写尴尬。今天来点实在, 尝试把Tushare的数据获取到本地。

一.获取Tushare API

Tushare是目前看来比较靠谱的免费数据源头。什么叫靠谱,起码要稳定以及数据准确才叫靠谱是不。以后还会介绍别的免费平台,因为多个平台才保险。试想想,好不容易做好了策略,写好了代码,发现平台一断全部代码作废,只能哭唧唧。

先注册一下Tushare。Tushare积分平台上有各种获取办法。

Tushare注册网址:(如果大家用这个链接,我能有50分,谢谢大家啦。)

tushare数据、https://tushare.pro/register?reg=289314

3df30ea7fbfd4fd665a7c85c8c51580a.png

我们的目标策略其实只需要两个东西:

1.沪深300的pe,2.无风险收益率

那么,

第一步,获取沪深300pe的api。

打开“指数”>>“大盘每日指标”,表格里面已经告诉你,Tushare是有指数的市盈率TTM数据的。

980967eb871d70a94b3d58f8ffcd0a1a.png

这里就要科普金融知识了

tushare数据库结构,个股的市盈率大家都知道,就是股价/每股净利润,一般就是越低越说明这个公司被低估。这个指标,说实话我觉得在个股上面一般。虽然没有去单独证明过,但是明显,这个指标是除以净利润的。要是我去改进,一定会去除以扣非净利润,而不是净利润。

记得2019年,海马汽车卖了400多套房保住上市公司地位。当年海马汽车卖出的车数量是腰斩的,马上就触发3年亏损要退市的规则了。但是卖房之后,公司马上盈利。如果我们用市盈率去评价海马汽车,用它的股价除以它的净利润,市盈率起码还是个正数,甚至还比较低。那么请问,这个结果能说明海马汽车是个好公司么?但卖房行为不是海马汽车的主营业务,so,如果我们用扣非净利润,就要从净利润中扣掉买房所得,指标显得有效得多。

但说到指数,指数的市盈率是所有指数成份股加权平均的市盈率,市盈率个股的不怎么好用,但是指数的好用。大部分公司的利润都是主营业务得来的,沪深300公司质地也不差,个别坏公司不怎么影响总体。

另外一个概念就是TTM。上市公司净利润一年公布4次,TTM就是考虑过去最近4个财报的净利润,得出最近一年时间的净利润。打个比方,现在是7月,目前已经发布的,最近的4份财报是:2020中报,2020一季报,2019年的年报,以及2019年的3季报。那么我们就考虑这4份财报的净利润就是TTM净利润。而不带TTM的市盈率,就是用现在的股价去除以2019年年报的净利润了,这就有点跟不上形势了,毕竟19年的年报都已经公布快4个月了。我们考虑问题起码把2020年的一季报考虑进去才合理吧。

记录使用接口的代码:

f458cedf196717d26fb6d140f53a5950.png

第二步,获取无风险利率的api。

582aed537f1bf24ff32bb3b74eab2a90.png

原版策略我见过两个非常相似的,一个来自国信证券,一个是华泰证券,用的都是10年期国开债收益率。这个数据只在Wind客户端看到有API接口获取数据,但Wind需要将近28000块钱一年的费用。所以这里我们改为使用shibor利率。原理一样,效果应该是差不多的。同样需要记住API

5f360d79d5bf669d8051d1f973d9fefb.png

tushare获取股票数据?二. 写代码获取数据

打开spyder,我们第一次写代码。

新建一个project >> 打开一个空白的.py文件(具体做法参考实战1)

1. import一些库。这些库就可以理解成别人已经写好的类,我们用就行了,不用自己写。

import tushare as tsimport pandas as pd

后面的代码不需要输入tushare,输入ts即可,而ts你可以随便定义,看你方便。至于库的安装,可以在打开windows的开始,输入anaconda prompt并打开,使用语句

pip install tushare 或者conda install pandas就会安装好库。当然电脑必须要联网。至于pip和conda是什么差别,以后再讲。

f9690829cf9da470045abb401bdb692a.png

2. 写一个方法,生成tushare的api接口。方法,也有人叫函数,是用来执行一些功能或者返回一个结果的单元。

如何安装tushare?写好之后如下图,(马赛克部分是注册tushare后,tushare给我们的token,相当用户的身份证号码,用字符串形式输入,即两边各一个英文单引号):

080d6b1243c4f85767ce6e4c5850c9a9.png

上面代码的逻辑就是:

  1. 使用关键字def, 定义一个方法叫init_tushare, 这个方法是不需要参数的,所以后面直接跟一个空括号。

  2. 这个方法的内容需要在方法名称下面写,并且空4个空格!这个非常重要,在Python里面,区分代码范围的方法就是4个空格,其他语言很多是使用花括号的。当然spyder里面按TAB键就等于按了4个空格,在spyder设置里面可以设置。

  3. 方法的第一步先返回一个叫pro的变量。使用的就是tushare给我们的

    pro_api方法。这个方法需要的是token字符串,我们给它。

  4. 方法第二步就是将pro变量,return出去。不使用return,那么到函数体外面,我们是无法使用pro的。return这个东西相当于一个动作,方法里面各种复杂运算处理十月怀胎,return就相当于生孩子的命令。

tushare的教程,3. 利用写好的方法获取数据。先得到接口,然后用之前在tushare官网记下的两个API获取数据。

28eeed37dc4ec2d1ac4abc5126844a6a.png

 上面代码的逻辑就是:

1.if __name__ == '__main__':这一句告诉程序这是入口。(其实不写也行,但是不写这句,以后在别的程序里面如果我们import这个py文件,那么这句后面的内容全部会自动执行。)

2. 程序会首先用我们定义好的init_tushare方法得到一个接口。

3. 使用这个接口,得到shibor数据,参数就是日期。这里我们获取2018年1月1日到2019年1月1日的数据。我们用shiborData这个变量指代这些数据。

4. 使用接口,得到沪深300指数的数据, 参数就是沪深300的代码,以及两个日期。获得的数据赋值给indexData这个变量。

4. 按F5或者选定所有代码按F9运行代码。并且在变量窗口双击变量名,查看数据。

0742336bc18ef47dda844df8fc0177c9.png

python pandas,至此我们就获取到了tushare上的数据

完整代码:

import tushare as tsimport pandas as pddef init_tushare():    pro = ts.pro_api(        '你的token')    return proif __name__ == '__main__':    pro = init_tushare()    shiborData = pro.shibor(                start_date='20180101',                 end_date='20190101')    indexData = pro.index_dailybasic(                ts_code='000300.SH',                start_date='20180101',                end_date='20190101')

 求点再看,分享转发

(有读者反馈前两篇搭建远程mysql有地方走不通,我修改之后会再次推送。)

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/18976.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息