亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Python環(huán)境下金融交易數(shù)據(jù)的API調(diào)用

        2021-11-28 11:55:44春雨王宇棟
        中國集體經(jīng)濟(jì) 2021年36期

        春雨 王宇棟

        摘要:隨著股票/期貨市場(chǎng)的快速發(fā)展,股票/期貨相關(guān)數(shù)據(jù)的獲取是第一個(gè)需要解決的問題。通過API調(diào)用來獲取數(shù)據(jù)能優(yōu)化數(shù)據(jù)獲取流程,節(jié)約數(shù)據(jù)獲取時(shí)間。文章基于股票/期貨API的滬深港股票/期貨交易數(shù)據(jù)調(diào)用方法,分析對(duì)比其與網(wǎng)絡(luò)爬蟲數(shù)據(jù)調(diào)用方法的異同。由于單獨(dú)使用網(wǎng)絡(luò)爬蟲或API調(diào)用不能完成數(shù)據(jù)準(zhǔn)確完整的調(diào)用。因此,提出一種API調(diào)用和網(wǎng)絡(luò)爬蟲相結(jié)合的方法,從而解決API調(diào)用數(shù)據(jù)次數(shù)受限,網(wǎng)絡(luò)爬蟲調(diào)用數(shù)據(jù)過程復(fù)雜等問題,綜合兩種方法的優(yōu)點(diǎn)以實(shí)現(xiàn)數(shù)據(jù)高效完整的獲取。

        關(guān)鍵詞:API;API調(diào)用;數(shù)據(jù)獲取;網(wǎng)絡(luò)爬蟲

        19世紀(jì)70年代,Digital Research公司創(chuàng)造出了世界上第一個(gè)實(shí)用的軟件API(Application Programming Interface,應(yīng)用程序接口),這個(gè)API僅僅由20種簡(jiǎn)單的函數(shù)組成,但就是這個(gè)API的出現(xiàn)改變了整個(gè)計(jì)算機(jī)領(lǐng)域。之后比爾·蓋茨等人復(fù)制了其API開發(fā)出MS-DOS操作系統(tǒng),添加了一些簡(jiǎn)單的特性之后,將其推上了軟件開發(fā)的主導(dǎo)地位。

        1981年,微軟公司發(fā)布Windows操作系統(tǒng),但其自己開發(fā)出來的Windows API不能滿足當(dāng)時(shí)使用需求,大量的開發(fā)人員投入到Windows程序的開發(fā)中來,同時(shí)加快了API的發(fā)展進(jìn)程。

        1988年,微軟公司購買了Alan Cooper開發(fā)的可視編程語言:Ruby。Ruby滿足了名為VBX的軟件API,這種API可以讓開發(fā)人員動(dòng)態(tài)地?cái)U(kuò)展Visual Basic功能。

        除了微軟之外,Unix世界也創(chuàng)造出可以在網(wǎng)絡(luò)之間自由通信的API,這就是TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協(xié)議/網(wǎng)際協(xié)議)。到了20世紀(jì)90年代,Marc Andreessen推出了世界上第一個(gè)Web瀏覽器:Mosaic。正是因?yàn)橛辛薚CP/IP API,Netscape可以在自己的計(jì)算機(jī)之外查找其他網(wǎng)絡(luò)上的計(jì)算機(jī),并且提取其中的文件。

        今天的軟件開發(fā)者很大一部分是在開發(fā)Web應(yīng)用程序, Web領(lǐng)域的開發(fā)者們不會(huì)對(duì)Web本身有太多的研究,所以這些開發(fā)者需要把其他開發(fā)者預(yù)先編寫的部分組合起來,所以他們比以前更多地依賴于為其編寫的軟件API。同時(shí)API在金融領(lǐng)域也發(fā)揮著它的優(yōu)勢(shì)。由于互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,股票/期貨的交易數(shù)據(jù)也呈現(xiàn)著快速增長(zhǎng)的趨勢(shì)。目前大量股票/期貨交易數(shù)據(jù)為政府、組織機(jī)構(gòu)、企業(yè)所擁有,但是社會(huì)層面對(duì)股票/期貨交易數(shù)據(jù)的需求也越來越強(qiáng)烈,越來越多的團(tuán)體或個(gè)人需要按照自己的交易習(xí)慣定置個(gè)性化交易軟件。股票/期貨交易數(shù)據(jù)的獲取量大、股票/期貨數(shù)據(jù)更新頻繁、數(shù)據(jù)傳播迅速,并且數(shù)據(jù)獲取用戶相對(duì)集中,所以用API來調(diào)用股票/期貨數(shù)據(jù)既滿足了用戶對(duì)股票/期貨數(shù)據(jù)的需求同時(shí)還節(jié)省了數(shù)據(jù)獲取時(shí)間。

        一、API概述

        API是指操作系統(tǒng)預(yù)先把這些復(fù)雜的操作寫在一個(gè)函數(shù)里面,編譯成一個(gè)動(dòng)態(tài)鏈接庫,跟隨操作系統(tǒng)一起發(fā)布,并附上使用文檔說明,使用者只需要簡(jiǎn)單地調(diào)用這些函數(shù)就可以完成一些復(fù)雜的工作。API具有以下性質(zhì),一是可用性,是指用戶能否便捷運(yùn)用API來完成指定任務(wù),是衡量API質(zhì)量的重要指標(biāo)。二是穩(wěn)定性,代表著API的質(zhì)量,穩(wěn)定的API可以提高調(diào)用數(shù)據(jù)的準(zhǔn)確性完整性。三是安全性,API的不規(guī)范使用可能會(huì)導(dǎo)致數(shù)據(jù)在調(diào)用過程中發(fā)生錯(cuò)誤,致使返回給用戶的數(shù)據(jù)不準(zhǔn)確甚至給操作系統(tǒng)帶來安全風(fēng)險(xiǎn)。API按用戶不同權(quán)限提供數(shù)據(jù)服務(wù)其中包括:一是支持內(nèi)容創(chuàng)建,API 允許用戶定制、獲取、上傳數(shù)據(jù);二是禁止內(nèi)容創(chuàng)建,API 只允許用戶定制、獲取數(shù)據(jù),不允許對(duì)數(shù)據(jù)進(jìn)行編輯更改。大部分開放給普通用戶的API都禁止用戶對(duì)其創(chuàng)建內(nèi)容,主要原因是防止權(quán)威數(shù)據(jù)的漏傳、誤傳甚至丟失,例如用戶獲取實(shí)時(shí)股票/期貨交易數(shù)據(jù)。

        API 調(diào)用是通過 API 有條件的精確獲取用戶所需要的數(shù)據(jù),調(diào)用方式靈活方捷、反映速度快。

        二、API調(diào)用股票/期貨數(shù)據(jù)的方法與實(shí)現(xiàn)

        API調(diào)用數(shù)據(jù)原理如圖1所示。

        (一)API接口的選擇

        獲取股票/期貨數(shù)據(jù)的API接口主要有:數(shù)據(jù)超市、雅虎、新浪、Google等。

        由于計(jì)算機(jī)技術(shù)的發(fā)展以及數(shù)據(jù)獲取手段的普及,現(xiàn)在出現(xiàn)了許多數(shù)據(jù)超市,可以更加高效快捷的獲取股票/期貨數(shù)據(jù),不僅節(jié)約了獲取者的時(shí)間,同時(shí)也有利于獲取更多準(zhǔn)確及時(shí)的數(shù)據(jù)。下面介紹三種數(shù)據(jù)接口從中選擇一個(gè)作為接下來實(shí)驗(yàn)的數(shù)據(jù)接口。

        1. 雅虎

        缺點(diǎn):部分美國假期數(shù)據(jù)缺失;調(diào)用數(shù)據(jù)的次數(shù)有限制,超過規(guī)定次數(shù)就會(huì)被警告并封鎖IP地址。優(yōu)點(diǎn):數(shù)據(jù)比較權(quán)威,準(zhǔn)確性有保障,可以獲取其他國家市場(chǎng)數(shù)據(jù);返回?cái)?shù)據(jù)解析方便,較好提取。

        2. 新浪

        缺點(diǎn):股票/期貨歷史數(shù)據(jù)不夠完整。優(yōu)點(diǎn):速度非???返回?cái)?shù)據(jù)容易處理;可以按照使用者要求獲取單一方面的數(shù)據(jù)。

        3. Google

        缺點(diǎn):數(shù)據(jù)都是從新浪獲取,獲取自由度低。優(yōu)點(diǎn):數(shù)據(jù)準(zhǔn)確可靠。

        綜合以上接口的優(yōu)缺點(diǎn),通過對(duì)比分析選擇數(shù)據(jù)更加全面完整,獲取范圍更加廣泛的雅虎接口作為實(shí)驗(yàn)中的API接口。

        (二)API調(diào)用股票/期貨數(shù)據(jù)

        從新浪財(cái)經(jīng)網(wǎng)絡(luò)接口直接調(diào)用股票/期貨數(shù)據(jù)。

        基本步驟:import requests

        r=requests.get("http://hq.sinajs.cn/list=股票/期貨代碼")

        print(r.text)

        注意:上證股票在輸入股票代碼時(shí)要在前面加上sh,深圳股票在股票代碼前面加上sz,港股在股票代碼前面加上hk

        下面分別調(diào)取了滬股浦發(fā)銀行sh00000、深股平安銀行sz000001、以及港股頤海國際hk01579、海底撈hk06862的股票交易數(shù)據(jù)和玉米、白銀、黃金的期貨交易數(shù)據(jù)。

        浦發(fā)銀行股票交易數(shù)據(jù):

        import requests

        r=requests. get("http://hq. sinajs. cn/list-s600000")

        print (r. text)

        var hq_ str_sh600000="浦發(fā)銀行,12. 170, 12. 230, 12. 040, 12. 220, 12. 010, 12.030, 12. 040, 38092059, 460234691. 000, 62300, 12.030,239567, 12. 020, 729627, 12.010, 1215100, 12. 000, 2099000,11. 990, 82800, 12. 040, 192900, 12. 050, 390800 12. 060, 238700, 12. 070, 296100, 12. 080, 2019-11-20, 15:00:00, 00,"

        平安銀行股票交易數(shù)據(jù):

        import requests

        r=requests. get("http://hq. sina js. cn/list=sz000001")

        print (r. text)

        var hq_str_sz000001="平安銀行16.300, 16.410, 15.850, 16.300, 15.770, 15.850, 15.860, 172438353, 2747598383. 400, 303297, 15. 850, 133200, 15. 840, 64083, 15. 830, 36600, 15. 820, 84700, 15. 810, 36200, 15. 860, 256000 15. 870, 1405307, 15. 880, 51100, 15. 890, 166385, 15. 900, 2019-11-20,15:00:03, 00"

        頤海國際股票交易數(shù)據(jù):

        import requests

        r=requests. get("http://hq. sina js. cn/list=hk01579")

        print (r. text)

        var hq_str_hk01579="NULL,頤海國際,50.400, 50.400, 51.750,49.500, 5l.350,0.950, 1.885, 51.300, 51.350, 89306132, 1760506, 84.180, 0.000,56.050, 18.020,2019/11/20, 16:08"

        海底撈股票交易數(shù)據(jù):

        import requests

        r=requests. get ("http://hq. sina js. cn/list =hk06862")

        print (r. text)

        var hq_str_hk06862="NULL, 海底撈35.000, 35.000, 35.400, 34.850, 35.300, 0.300, 0.857, 35.200, 35.300, 89417573, 2541754, 93.634, 0.000, 39.000, 16. 420, 2019/11/20, 16:08"

        玉米期貨交易數(shù)據(jù):

        import requests

        r=requests. get ("http://hq. sina js. cn/list=C0")

        print(r. text)

        var hq_str_C0="玉米連續(xù),150040, 1857. 00,1857. 00,1844. 00, 1854. 00, 1845. 00. 1846 00, 1846. 00, 1848. 00, 1857. 00, 2316, 165, 1189024,473098,連,玉米,2019-11-20, 0, 1865. 000, 1833.000, 1868.000, 1833.000, 1895. 000, 1823. 000, 1901.000, 1810 000, 16.838"

        白銀期貨交易數(shù)據(jù):

        import requests

        r=requests. get("http://hq. sina js. cn/list=AG0")

        print (r. text)

        var hq_str_ AG0="白銀連續(xù), 145955, 4170. 00, 4192. 00, 4132. 00, 4185. 00, 4169. 00, 4170. 00, 4170. 00, 4165. 00, 4147. 00, 127, 7, 624046, 1391504, 滬,白銀, 2019-11-20, 0, 4192. 000, 4091. 000, 4280. 000, 4036. 000, 4487. 000, 4036. 000, 4843. 000, 4036. 000, 78. 485 "

        黃金期貨交易數(shù)據(jù):

        mport requests

        r=requests. get("http://hq. sina js. cn/list =AU0")

        print(r. text)

        var hq_ str_AU0="黃金連續(xù),145954, 337.85,339. 55, 336. 70, 388.30, 339.15, 339. 40, 339.15, 0.00, 337. 75, 25, 6, 169804, 78028,滬,黃金, 2019-11-20,0, 339.550,334.600, 339.550, 327. 600, 347.750, 327. 600, 363. 850, 327. 600, 3.429"

        三、API調(diào)用與網(wǎng)絡(luò)爬蟲對(duì)比分析

        (一)關(guān)于API調(diào)用數(shù)據(jù)方法的分析

        API調(diào)用數(shù)據(jù)方法的普及主要原因有:

        API 提出了一種代碼的編制復(fù)用機(jī)制,用戶可以直接使用已有的API接口,復(fù)用他人編制出來的代碼完成數(shù)據(jù)的調(diào)用。

        API開發(fā)出一種信息隱藏的機(jī)制,用戶在不知道具體細(xì)節(jié)的情況下,就可以完成相應(yīng)的數(shù)據(jù)調(diào)用功能。

        API 提供了訪問某些數(shù)據(jù)資源的接口,用戶通過這些API接口就能直接訪問到想要的資源,不用進(jìn)行接口的尋找,節(jié)省數(shù)據(jù)調(diào)用時(shí)間。

        API調(diào)用數(shù)據(jù)支持多項(xiàng)目、多模塊的數(shù)據(jù)調(diào)用,同時(shí)支持私有項(xiàng)目、公開項(xiàng)目、加密項(xiàng)目的數(shù)據(jù)調(diào)用。

        API調(diào)用數(shù)據(jù)支持協(xié)同管理,支持添加項(xiàng)目成員,并且可精確控制每個(gè)成員的權(quán)限。

        API接口支持普通接口、restfull、josn、xml等各種接口的數(shù)據(jù)的調(diào)用,接口返回?cái)?shù)據(jù)也支持word、pdf格式下載,可單個(gè)下載也可按模塊下載。

        通過調(diào)用 API 接口可以實(shí)現(xiàn)股票/期貨數(shù)據(jù)便捷高效的獲取與解析。但所有的數(shù)據(jù)提供商都不會(huì)無條件無限制的提供給普通用戶完整數(shù)據(jù),例如在股票/期貨數(shù)據(jù)獲取過程中,有許多擁有重要查詢功能的 API 是不提供給普通用戶的,同時(shí)對(duì)于開放的 API,一次調(diào)用的返回結(jié)果數(shù)量有限制。同時(shí)因?yàn)?API 接口自身的復(fù)雜性以及數(shù)據(jù)本身的缺失和疏漏等原因,使用者經(jīng)常會(huì)對(duì)API進(jìn)行錯(cuò)誤的使用,導(dǎo)致調(diào)用數(shù)據(jù)和現(xiàn)實(shí)不符合甚至出現(xiàn)重大誤差。因此使用 API 調(diào)用數(shù)據(jù)的方法只能解決數(shù)據(jù)獲取中的一部分問題。

        (二)API調(diào)用數(shù)據(jù)與網(wǎng)絡(luò)爬蟲對(duì)比分析

        爬蟲指的是:向網(wǎng)站發(fā)起請(qǐng)求,獲取資源后分析并提取有用數(shù)據(jù)的程序。

        網(wǎng)絡(luò)爬蟲的基本原理:發(fā)起請(qǐng)求,使用http庫向需要的數(shù)據(jù)所在的網(wǎng)站發(fā)起請(qǐng)求,即發(fā)送一個(gè)Request;獲取響應(yīng)內(nèi)容,如果服務(wù)器能正常響應(yīng),則會(huì)得到一個(gè)返回?cái)?shù)據(jù);解析返回?cái)?shù)據(jù),通過第三方解析返回的數(shù)據(jù),從中獲取所需要的部分;保存數(shù)據(jù)。將提取的有用的數(shù)據(jù)保存到本地。

        與基于API 的數(shù)據(jù)調(diào)用相比,基于網(wǎng)絡(luò)爬蟲的數(shù)據(jù)調(diào)用效率與性能有明顯差距,同時(shí)網(wǎng)絡(luò)爬蟲調(diào)用數(shù)據(jù)還要解決網(wǎng)頁的模擬登錄問題,調(diào)用過程復(fù)雜。但是通過網(wǎng)絡(luò)爬蟲進(jìn)行數(shù)據(jù)調(diào)用,能夠解決用戶反復(fù)調(diào)用API接口帶來的數(shù)據(jù)量限制等問題,使能夠調(diào)用的數(shù)據(jù)量明顯增加,調(diào)用過程穩(wěn)定。

        但是在只需要部分特定的數(shù)據(jù)時(shí),基于網(wǎng)絡(luò)爬蟲的數(shù)據(jù)調(diào)用方法速度較慢,在處理數(shù)量相同的信息時(shí)需要解決更多的問題,在數(shù)據(jù)的返回解析方面也更加復(fù)雜。而通過API調(diào)用數(shù)據(jù)可以一次性完成數(shù)據(jù)調(diào)用、返回、解析、存儲(chǔ),不需要像網(wǎng)絡(luò)爬蟲獲取數(shù)據(jù)一樣,一個(gè)一個(gè)頁面解析提取的數(shù)據(jù),同時(shí)API調(diào)用返回?cái)?shù)據(jù)大小較小,速度快使調(diào)用更有效率。

        四、對(duì)數(shù)據(jù)調(diào)用方法的思考

        API 調(diào)用數(shù)據(jù)的抓取方式效率高,但因?yàn)榉?wù)器限制,不能獲得完整數(shù)據(jù)集,而基于網(wǎng)絡(luò)爬蟲的數(shù)據(jù)獲取方案可以獲得較大的數(shù)據(jù),但無法一次性抓取用戶想要的數(shù)據(jù),獲取效率比較低。所以需要將兩者結(jié)合起來,以實(shí)現(xiàn)最佳數(shù)據(jù)抓取獲取效果。

        首先,計(jì)算需要抓取的數(shù)據(jù)大小,如果需要獲取的數(shù)據(jù)量小于用戶使用的API接口規(guī)定訪問的最大限制次數(shù),則自動(dòng)調(diào)用API接口獲取數(shù)據(jù)。反之就使用網(wǎng)絡(luò)爬蟲獲取用戶所需要的數(shù)據(jù)。如果在使用API接口的過程中,累計(jì)數(shù)據(jù)量超過了接口所允許的最大訪問次數(shù),這時(shí)也可以自動(dòng)轉(zhuǎn)換為網(wǎng)絡(luò)爬蟲獲取剩下部分的數(shù)據(jù)。獲取完整數(shù)據(jù)后將數(shù)據(jù)放入一個(gè)數(shù)據(jù)庫中,數(shù)據(jù)庫自動(dòng)檢測(cè)對(duì)比數(shù)據(jù)的真實(shí)準(zhǔn)確性,從而輸出用戶所需要的數(shù)據(jù)。

        五、結(jié)語

        本文主要介紹一種基于API接口獲取股票/期貨數(shù)據(jù)的方法,將其與傳統(tǒng)網(wǎng)絡(luò)爬蟲獲取數(shù)據(jù)方法進(jìn)行對(duì)比。提出兩者相結(jié)合的方法,一方面彌補(bǔ)了API調(diào)用數(shù)據(jù)的調(diào)用次數(shù)限制問題,另一方面解決了網(wǎng)絡(luò)爬蟲調(diào)用數(shù)據(jù)需要模擬登陸和大量的頁面解析的問題。結(jié)合兩者優(yōu)點(diǎn)提高調(diào)用效率保證數(shù)據(jù)的準(zhǔn)確性與完整性,但是從大數(shù)據(jù)的發(fā)展角度出發(fā),在不考慮API訪問次數(shù)限制的情況下,基于API的數(shù)據(jù)獲取方法在獲取效率方面還有很大的發(fā)展空間,之后的研究可以從如何降低API接口的限制訪問次數(shù)入手提出更加符合要求方便快捷的數(shù)據(jù)獲取方法。

        參考文獻(xiàn):

        [1]廉捷,周欣,曹偉,劉云.新浪微博數(shù)據(jù)挖掘方案[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,51(10):1300-1305.

        [2]冰雨夢(mèng).軟件接口的歷史和未來[J]. 中文信息:程序春秋,2002(06):18-19.

        [3]李正,吳敬征,李明樹.API使用的關(guān)鍵問題研究[J].軟件學(xué)報(bào),2018,29(06):1716-1738.

        [4]趙前東,葉猛.微博熱點(diǎn)話題檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2013(03):211-214.

        [5]王佳秋.基于用戶行為及關(guān)系的微博電商企業(yè)影響力度量[D].哈爾濱:哈爾濱商業(yè)大學(xué),2013.

        [6]徐雁飛,劉淵,吳文鵬.社交網(wǎng)絡(luò)數(shù)據(jù)采集技術(shù)研究與應(yīng)用[J].計(jì)算機(jī)科學(xué),2017(01):277-282.

        [7]石磊.新浪API與網(wǎng)絡(luò)爬蟲結(jié)合獲取數(shù)據(jù)的研究與應(yīng)用[J].中國電子商務(wù),2013(22):58-59.

        [8]李良.基于Python的測(cè)井?dāng)?shù)據(jù)校驗(yàn)對(duì)比[J].信息系統(tǒng)工程,2014(06):142.

        [9]余斌.基于Bottle的Python網(wǎng)絡(luò)應(yīng)用開發(fā)[J].無線互聯(lián)科技,2014(06):29+103.

        [10]劉海房,莫世鴻,龔振,范冰冰.面向API調(diào)用的開放數(shù)據(jù)存儲(chǔ)管理研究[J].計(jì)算機(jī)應(yīng)用與軟件,2018,35(08):93-97.

        (作者單位:昆明理工大學(xué)公共安全與應(yīng)急管理學(xué)院)

        在线成人影院国产av| 国产无线乱码一区二三区| 啊v在线视频| 国产一区二区三区尤物| 久久婷婷五月综合97色直播| 亚洲男人第一无码av网站| 无码天堂亚洲国产av麻豆| 国内偷拍第一视频第一视频区| 亚洲视频网站大全免费看| 黑人巨大跨种族video| 婷婷亚洲国产成人精品性色| 国产av在线观看91| 无遮挡激情视频国产在线观看| 亚洲av成人一区二区三区| 国产精品综合久久久久久久免费| 伊人久久大香线蕉av色婷婷| 99国产精品99久久久久久 | 99RE6在线观看国产精品| 久久午夜av一区二区| 成人欧美日韩一区二区三区| 亚洲国产精品无码久久电影| 我和丰满老女人性销魂| 操风骚人妻沉沦中文字幕| av无码天堂一区二区三区| 正在播放淫亚洲| 色男色女午夜福利影院| 精品精品国产自在97香蕉| 亚洲熟妇av乱码在线观看 | 国产二区中文字幕在线观看| 人妻丰满av无码中文字幕| 毛片免费全部无码播放| 黑人免费一区二区三区| 亚洲最大水蜜桃在线观看| 中文国产日韩欧美二视频| 亚洲AⅤ男人的天堂在线观看| av影片手机在线观看免费网址 | 131美女爱做视频| 亚洲日本VA午夜在线电影| 亚洲国产精品久久婷婷| 中文字幕乱码熟女人妻水蜜桃| 久久久国产精品福利免费|