Python基礎(chǔ)教程 | PYTHON多線程行情抓取工具實現(xiàn)脫貧利器


借助Python當(dāng)中threading模塊與Queue模塊組合可以方便的實現(xiàn)基于生產(chǎn)者-消費者模型的多線程模型。Jimmy大神的tushare一直是廣大Python數(shù)據(jù)分析以及業(yè)余量化愛好者喜愛的免費、開源的Python財經(jīng)數(shù)據(jù)接口包。
平時一直有在用阿里云服務(wù)器通過tushare的接口自動落地相關(guān)財經(jīng)數(shù)據(jù),但日復(fù)權(quán)行情數(shù)據(jù)以往在串行下載的過程當(dāng)中,速度比較慢,有時遇到網(wǎng)絡(luò)原因還需要重下。每只股票的行情下載過程中都需要完成下載、落地2個步驟,一個可能需要網(wǎng)絡(luò)開銷、一個需要數(shù)據(jù)庫mysql的存取開銷。2者原本就可以獨立并行執(zhí)行,是個典型的“生產(chǎn)者-消費者”模型。
基于queue與threading模塊的線程使用一般采用以下的套路:



1,股票列表信息接口
-
作用
獲取滬深上市公司基本情況。屬性包括:

-
調(diào)用方法

-
返回效果

2,日復(fù)權(quán)行情接口
-
作用
提供股票上市以來所有歷史數(shù)據(jù),默認(rèn)為前復(fù)權(quán),讀取后存到本地,作為后續(xù)分析的基礎(chǔ) -
調(diào)用方法

-
返回結(jié)果



廢話不多說,直接上代碼,
-
生產(chǎn)者線程,讀取行情

-
消費者線程,本地存儲

-
定義主線程

-
執(zhí)行效果
原本需要2,3個小時才能執(zhí)行完成的每日復(fù)權(quán)行情增量落地,有效縮短至了1小時以內(nèi),這里線程數(shù)并不上越多越好,由于復(fù)權(quán)行情讀的是新浪接口,在高并發(fā)情況下會返回HTTP 503服務(wù)器過載的錯誤,另外高并發(fā)下可能需要使用IP代理池,下載的時段也需要嘗試多個時段進(jìn)行。初次嘗試,如果有更好的方法或者哪里有考慮不周的地方歡迎留言建議或者指正。
作者:dudubird85
來源:http://www.jianshu.com/p/2e8cc91f802b
————廣告時間————
馬哥教育2017年P(guān)ython自動化運維開發(fā)實戰(zhàn)班,馬哥聯(lián)合BAT、豆瓣等一線互聯(lián)網(wǎng)Python開發(fā)達(dá)人,根據(jù)目前企業(yè)需求的Python開發(fā)人才進(jìn)行了深度定制,加入了大量一線互聯(lián)網(wǎng)公司:大眾點評、餓了么、騰訊等生產(chǎn)環(huán)境真是項目,課程由淺入深,從Python基礎(chǔ)到Python高級,讓你融匯貫通Python基礎(chǔ)理論,手把手教學(xué)讓你具備Python自動化開發(fā)需要的前端界面開發(fā)、Web框架、大監(jiān)控系統(tǒng)、CMDB系統(tǒng)、認(rèn)證堡壘機(jī)、自動化流程平臺六大實戰(zhàn)能力,讓你從0開始蛻變成Hold住年薪20萬的Python自動化開發(fā)人才。
掃描二維碼和更多小伙伴組團(tuán)學(xué)習(xí)

