Python获取全部股票数据

目前整个沪深京A股市场总共有5000余支股票,那么我们怎么能获取到这些股票的数据(股价、市值、市盈率、市净率等)呢?

小编常用的有三个网站,分别是东方财富、同花顺、雪球,请自行查阅。

我们以东方财富为例,打开东方财富行情中心,找到全部股票数据后,找到对应的接口URL和请求数据等。

接下来,使用Python来获取全部股票数据,代码如下:

import requests

url = 'http://27.push2.eastmoney.com/api/qt/clist/get'
for i in range(1, 10):
    data = {
        'fields': 'f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152',
        'pz': 1000,         # 每页条数
        'pn': i,            # 页码
        'fs': 'm:0 t:6,m:0 t:80,m:1 t:2,m:1 t:23,m:0 t:81 s:2048'
    }
    response = requests.get(url, data)
    response_json = response.json()
    print(i, response_json)
    # 返回数据为空时停止循环
    if response_json['data'] is None:
        break
    for j, k in response_json['data']['diff'].items():
        code = k['f12']         # 代码
        name = k['f14']         # 名称
        price = k['f2']         # 股价
        pe = k['f9']            # 动态市盈率
        pb = k['f23']           # 市净率
        total_value = k['f20']          # 总市值
        currency_value = k['f21']       # 流通市值
        price = round(price/100, 2)     # 价格转换为正确值(保留2位小数)
        pe = round(pe/100, 2)           # 市盈率转换为正确值(保留2位小数)
        pb = round(pb/100, 2)           # 市净率转换为正确值(保留2位小数)
        total_value = round(total_value / 100000000, 2)         # 总市值转换为亿元(保留2位小数)
        currency_value = round(currency_value / 100000000, 2)   # 流通市值转换为亿元(保留2位小数)
        print('代码: %s, 名称: %s, 现价: %s, 动态市盈率: %s, 市净率: %s, 总市值: %s亿, 流通市值: %s
  • 6
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

聪明的一休哥哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值