python爬蟲之基金信息存儲
1 前言
前面已經(jīng)講了很多次要進行數(shù)據(jù)存儲,終于在上一篇中完成了數(shù)據(jù)庫的設(shè)計,在這一篇就開始數(shù)據(jù)的存儲操作,在數(shù)據(jù)存儲的這個部分,會將之前抓取到的基金列表,基金基本信息和基金變動信息以及ETF信息進行存儲。
2 信息存儲
2.1 基金基本信息存儲
在這里獲取基金信息包括兩個部分,一部分是場外基金另外一部分是場外基金信息。之在前的文章中,我們已經(jīng)獲完成了場外基金和ETF基金信息的代碼,因此在這里我們僅僅需要存儲數(shù)據(jù)庫即可,那么有個問題,基金的信息是隨時發(fā)生變更的或者更新的。在保存時需要先判斷基金代碼是否已經(jīng)存在,如果存在則更新,如果不存在則新增,但是這樣效率有點低,這時候就用到之前的文章內(nèi)容,使用這樣 on duplicate key update
的語句就可以一條sql搞定了。
舉例如下所示:
INSERT INTO `tb_fund_list`(`code`, `name`, `fund_type`) VALUES ('000363','國泰聚信價值優(yōu)勢混合C','混合型-靈活') on duplicate key update `code` = '000363', `name` = '國泰聚信價值優(yōu)勢混合C' ,`fund_type` = '混合型-靈活';
如果存在000363基金的話,我們就進行更新操作,如果不存在那么久插入數(shù)據(jù)。
具體實現(xiàn)的代碼如下圖所示:
2.2 基金變動信息獲取
基金的變動信息不論是場內(nèi)基金還是場外基金都是一樣的獲取方式,在這里就可以使用通用的邏輯進行處理了,就是之前抓取基金變動信息和基金價格信息的方式。
3 需要改進的地方
3.1 基金類型
現(xiàn)在基金基本信息中的基金類型還是中文,這樣的中文存儲起來不符合常用的編碼規(guī)范,之前沒有處理是因為還不知道有多少種基金的類型,現(xiàn)在已經(jīng)獲取到了所有的基金,這個時候我們需要查詢一下所有的基金類型,然后建立枚舉來表述不同的基金類型。
# 獲取所有的基金類型信息 select distinct fund_type from tb_fund_list;
根據(jù)查詢出來的基金類型,最終定義的基金類型如下圖所示:
fund_type_dic = { "QDII": "1", "商品(不含QDII)": "2", "股票型": "3", "指數(shù)型-股票": "4", "混合型-偏債": "51", "混合型-偏股": "52", "混合型-平衡": "53", "混合型-靈活": "61", "債券型-中短債": "62", "債券型-可轉(zhuǎn)債": "63", "債券型-混合債": "64", "債券型-長債": "65" }
根據(jù)經(jīng)驗來說,債券型的基金相對比較多,如果對債券基金感興趣的
可以時常更新數(shù)據(jù),在后續(xù)的操作中以非債券型基金為主進行分析,數(shù)據(jù)總量相對較小,批量更新的時間也相對較短。
3.2 基金的更新順序
在之前的基金獲取過程中,總體來講獲取的順序是混亂的,在最終的數(shù)據(jù)結(jié)果存儲時,需要將獲取的信息基金拼接和組裝。最終的更新數(shù)據(jù)順序為:
- 1 更新場外基金列表(新增或者更新)
- 2 更新ETF信息列表(新增或者更新)
- 3 查詢基金的基本信息進行更新操作
- 4 查詢基金的階段變動信息進行更新
4 總結(jié)
獲取基金的信息已經(jīng)完畢,已經(jīng)把基金信息保存成功,在下一章中將介紹如何建立線性模型去評估基金的分數(shù),為投資基金做出定量分析。
到此這篇關(guān)于python爬蟲之基金信息存儲的文章就介紹到這了,更多相關(guān)python信息存儲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pycharm運行出現(xiàn)ImportError:No module named的解決方法
今天小編就為大家分享一篇pycharm運行出現(xiàn)ImportError:No module named的解決方法。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10Python自然語言處理 NLTK 庫用法入門教程【經(jīng)典】
這篇文章主要介紹了Python自然語言處理 NLTK 庫用法,結(jié)合實例形式詳細分析了NLTK庫的功能、安裝、引用以及使用NLTK庫進行文本分析的各種常用操作技巧,需要的朋友可以參考下2018-06-06Python爬蟲小例子——爬取51job發(fā)布的工作職位
這篇文章主要介紹了Python爬取51job發(fā)布的工作職位,文中講解非常細致,幫助大家更好的理解和學習Python,感興趣的朋友可以了解下2020-07-07