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

思路

借助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


原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2017-09-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DevOps时代的专栏

特性分支与特性开关哪家强?

合并冲突 新产品研发初期代码量较少,团队规模也不大,这种时候并不需要太多正式流程。 然而,即使一个团队只有两名开发人员,为了有效避免冲突,仍然建议不要在同时对...

2087
来自专栏腾讯移动品质中心TMQ的专栏

腾讯TMQ在线沙龙回顾|EP(测试分析+分层自动化测试)实践

答:Hook英文翻译过来就是「钩子」的意思,那我们在什么时候使用这个「钩子」呢?在 Android 操作系统中系统维护着自己的一套事件分发机制。应用程序,包括应...

2162
来自专栏自动化测试

DIY自动化测试【智能音箱】

    笔者从事智能音箱系统测试,这是一款基于android系统的智能语音助手产品。基本功能特性和测试方法都已稳定,目前多产品快速迭代,涉及的场景较多且数据量大...

9234
来自专栏CSDN技术头条

工业物联网通讯框架 ServerSuperIO 的实践应用

概述 不知从何时起,物联网、大数据、云计算……等一大批概念词汇流行起来,占领着各大 IT 网站。不能把这三个语汇独立来看,而是现实系统体系化建设的三个方面。物联...

2619
来自专栏喔家ArchiSelf

IoT设备的自我测试

东西坏了,事情也出了差错。 简单的说就是 XX发生了。 不管用什么词,事实上我们都生活在一个不完美的世界里。 在嵌入式系统中,有很多失败的可能。 在简单的系统中...

1583
来自专栏铭毅天下

实战 | Elasticsearch实现类Google高级检索

少废话,说正事。 一、高级检索的功能点 通过高级搜索配置搜索项,能更准确的过滤掉不相干信息,获取最想要的检索信息。 以Google搜索为例(截取核心片段):...

40510
来自专栏技术专栏

Springcloud(二)-拆分微服务(慕课网廖师兄SpringCloud微服务实战)

Organizations which design Systems are constrained to produce design which are c...

9532
来自专栏Cloud Native - 产品级敏捷

微服务架构设计 第六步: 微服务的 User Stories 的分析、设计与定义完成

2016.9.12, 深圳, Ken Fang 特性负责人, 说服开发与测试人员, 能认同微服务中的 User Story 的价值, 并使开发与测试人员能从产品...

2198
来自专栏ThoughtWorks

在微服务中使用领域事件|洞见

稍微回想一下计算机硬件的工作原理我们便不难发现,整个计算机的工作过程其实就是一个对事件的处理过程。当你点击鼠标、敲击键盘或者插上U盘时,计算机便以中断的形式处理...

2947
来自专栏全华班

一个专注于微信公众号开发的开源框架

以上文章属于此公众号原创所有,如需转载请注明出处。其中图片引用第三方。更多内容请扫描下方二维码关注。

3.6K4

扫码关注云+社区

领取腾讯云代金券