Python基礎教程 | 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
————廣告時間————
馬哥教育2017年Python自動化運維開發實戰班,馬哥聯合BAT、豆瓣等一線互聯網Python開發達人,根據目前企業需求的Python開發人才進行了深度定制,加入了大量一線互聯網公司:大眾點評、餓了么、騰訊等生產環境真是項目,課程由淺入深,從Python基礎到Python高級,讓你融匯貫通Python基礎理論,手把手教學讓你具備Python自動化開發需要的前端界面開發、Web框架、大監控系統、CMDB系統、認證堡壘機、自動化流程平臺六大實戰能力,讓你從0開始蛻變成Hold住年薪20萬的Python自動化開發人才。
掃描二維碼和更多小伙伴組團學習