社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

脱贫利器 | PYTHON多线程行情抓取工具实现

马哥Linux运维 • 7 年前 • 1030 次点击  

思路


借助python当中threading模块与Queue模块组合可以方便的实现基于生产者-消费者模型的多线程模型。Jimmy大神的tushare一直是广大python数据分析以及业余量化爱好者喜爱的免费、开源的python财经数据接口包。

平时一直有在用阿里云服务器通过tushare的接口自动落地相关财经数据,但日复权行情数据以往在串行下载的过程当中,速度比较慢,有时遇到网络原因还需要重下。每只股票的行情下载过程中都需要完成下载、落地2个步骤,一个可能需要网络开销、一个需要数据库mysql的存取开销。2者原本就可以独立并行执行,是个典型的“生产者-消费者”模型。

基于queue与threading模块的线程使用一般采用以下的套路:

相关接口


1,股票列表信息接口

  • 作用
    获取沪深上市公司基本情况。属性包括:

  • 调用方法

  • 返回效果

2,日复权行情接口

  • 作用
    提供股票上市以来所有历史数据,默认为前复权,读取后存到本地,作为后续分析的基础

  • 调用方法

  • 返回结果

实现


废话不多说,直接上代码,

  • 生产者线程,读取行情

  • 消费者线程,本地存储

  • 定义主线程

  • 执行效果
    原本需要2,3个小时才能执行完成的每日复权行情增量落地,有效缩短至了1小时以内,这里线程数并不上越多越好,由于复权行情读的是新浪接口,在高并发情况下会返回HTTP 503服务器过载的错误,另外高并发下可能需要使用IP代理池,下载的时段也需要尝试多个时段进行。初次尝试,如果有更好的方法或者哪里有考虑不周的地方欢迎留言建议或者指正。


作者:dudubird85
来源:http://www.jianshu.com/p/2e8cc91f802b



————广告时间————

马哥教育2017年Python自动化运维开发实战班,马哥联合BAT、豆瓣等一线互联网Python开发达人,根据目前企业需求的Python开发人才进行了深度定制,加入了大量一线互联网公司:大众点评、饿了么、腾讯等生产环境真是项目,课程由浅入深,从Python基础到Python高级,让你融汇贯通Python基础理论,手把手教学让你具备Python自动化开发需要的前端界面开发、Web框架、大监控系统、CMDB系统、认证堡垒机、自动化流程平台六大实战能力,让你从0开始蜕变成Hold住年薪20万的Python自动化开发人才

扫描二维码和更多小伙伴组团学习


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/uexX3oHT2H
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/3399
 
1030 次点击