python爬虫爬取股票的北上资金持仓数据

 更新时间:2022年05月06日 09:55:27   作者:​ 斜月   ​  
这篇文章主要介绍了python爬虫爬取股票的北上资金持仓数据,文章基于python的相关资料展开爬取数据的详细内容,具有一定的参考价值,需要的小伙伴可以参考一下

前言

前面已经讲述了如何获取股票的k线数据,今天我们来分析一下股票的资金流入情况,股票的上涨和下跌都是由资金推动的,这其中的北上资金就是一个风向标,今天就抓取一下北上资金对股票的逐天持仓变动和资金变动。

数据分析

照例先贴一下数据的访问地址:

# 以海尔智家为例贴一下数据的页面连接地址,再次吐槽一下拼音前缀
https://data.eastmoney.com/hsgtcg/StockHdStatistics/600690.html

下图就是北上资金逐天的访问数据页面,我们要抓取的是持股数量、持股市值、持股百分比和市值变化信息。

通过浏览器后台的接口可以看到这样一个接口数据: 

 这个接口的参数为:

# 请求地址数据,这里的参数和请求的不太一样,因为其它的参数我试过了,可以忽略掉,以下是必要参数
https://datacenter-web.eastmoney.com/api/data/v1/get?
# 排序字段和排序的类型, -1 为倒序排列
sortColumns=TRADE_DATE
&sortTypes=-1
# 后两个参数比较简单,就是分页参数而已
&pageSize=50
&pageNumber=1
# 报告类型,固定为北上资金数据
&reportName=RPT_MUTUAL_HOLDSTOCKNORTH_STA
# 返回的数据列,默认返回所有
&columns=ALL
# 获取数据参数为股票代码和交易日期
&filter=(SECURITY_CODE="600690")(TRADE_DATE>='2021-10-29')

数据抓取

我们已经解析了获取资金的参数,以下就是使用 python 来获取数据,并进行展示。我们依旧使用 requets 来获取数据。

我们需要先组装请求的参数,这里的 fliter 只传入了代码,日期选择了固定,这个个人感觉是查询的 ES ,不然不会这么传入参数,建议做个参数转换吧,这样直传不太好。 

数据查询返回的结果是json 格式,进行了解析后我们采用 prettyTable 打印结果。 

由于获取的数据没有经过格式化,显示的位数比较长,所以对持股数和市值之类的数据进行了格式化展示,

代码如下:

# 如果是亿级的就格式化为亿,万的话格式化为万
def cal_num(num):
    if abs(num / 100000000) > 0:
        return str(round(num / 100000000, 3)) + "亿"
    else:
        return str(round(num / 10000, 3)) + "万"

最终我们得到的结果如下: 

建立模型

我们已经获取到了股票的北上资金的情况,我们建立一个简单的模型筛选一下:

  • 1 选取最近一个月内北上资金连续加仓的股票,加仓幅度超过流通股份的1%。

在这个模型中,我们可以根据最近一个月每天的持仓百分比建立线性规划模型,y = kx + b 来计算斜率和截距,但是这个觉得有点儿复杂了,我们可以简化一下,就偷个懒计算当天的持仓量与一个月前的持仓比例差值即可,

具体代码如下:

# rate_list 为持股比例的集合,将 ratio 添加进集合中,这里为什么是22呢,
# 一般情况下一个月有22个交易日,所以减去22就是一个月前的持仓比例
def cal_model(rate_list):
    if len(rate_list) >= 22:
        cur_node = rate_list[0]
        pre_node = rate_list[22]
        return cur_node - pre_node
    return -100

总结

今天我们使用接口获取了个股北上资金的持仓数据,并建立了简单的分析模型来选择股票,这个技术实现比较简单,作为学习和练习使用已经就足够了。

到此这篇关于python爬虫爬取股票的北上资金持仓数据的文章就介绍到这了,更多相关python爬取数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Django把SQLite数据库转换为Mysql数据库的过程

    Django把SQLite数据库转换为Mysql数据库的过程

    之前我们默认使用的是SQLite数据库,我们开发完成之后,里面有许多数据,如果我们想转换成Mysql数据库,那我们先得把旧数据从SQLite导出,然后再导入到新的Mysql数据库里去,这篇文章主要介绍了Django如何把SQLite数据库转换为Mysql数据库,需要的朋友可以参考下
    2023-05-05
  • python实现批量命名照片

    python实现批量命名照片

    这篇文章主要为大家详细介绍了python实现批量命名照片,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • Python遍历zip文件输出名称时出现乱码问题的解决方法

    Python遍历zip文件输出名称时出现乱码问题的解决方法

    这篇文章主要介绍了Python遍历zip文件输出名称时出现乱码问题的解决方法,实例分析了Python乱码的出现的原因与相应的解决方法,需要的朋友可以参考下
    2015-04-04
  • pytorch1.60 torch.nn在pycharm中无法自动智能提示的解决

    pytorch1.60 torch.nn在pycharm中无法自动智能提示的解决

    这篇文章主要介绍了pytorch1.60 torch.nn在pycharm中无法自动智能提示的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python读取word文本操作详解

    Python读取word文本操作详解

    这篇文章主要介绍了Python读取word文本操作详解,介绍了涉及到的模块,相关概念,模块的安装等内容,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Django自带日志 settings.py文件配置方法

    Django自带日志 settings.py文件配置方法

    今天小编就为大家分享一篇Django自带日志 settings.py文件配置方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • selenium设置浏览器为headless无头模式(Chrome和Firefox)

    selenium设置浏览器为headless无头模式(Chrome和Firefox)

    这篇文章主要介绍了selenium设置浏览器为headless无头模式(Chrome和Firefox),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 使用Python操作FTP实现上传和下载的方法

    使用Python操作FTP实现上传和下载的方法

    今天小编就为大家分享一篇关于使用Python操作FTP实现上传和下载的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • Python使用pathlib库实现优雅的处理路径

    Python使用pathlib库实现优雅的处理路径

    如果你需要在 Python 里进行文件处理,那么标准库中的os和os.path兄弟俩一定是你无法避开的两个模块,本文主要来和大家聊聊如何使用pathlib库实现优雅的处理路径,感兴趣的可以了解下
    2023-12-12
  • Python字符串的拆分与连接详解

    Python字符串的拆分与连接详解

    由于字符串数据几乎无处不在,因此掌握有关字符串的交易工具非常重要。幸运的是,Python 使字符串操作变得非常简单,尤其是与其他语言甚至旧版本的 Python 相比时。本文将为大家详细介绍Python中字符串的拆分与连接,需要的可以参考一下
    2021-12-12

最新评论