python抓取交易所_Python百行代码抓取美股三大交易所历史数据
最近閑來無事,琢磨著去投資下美股,投資嘛,當然得先分析下市場行情個股行情啦,
分析就需要有數據,那么數據從哪里來呢,當然是從交易所官方網站獲取咯。自己動手豐衣足食,于是花了點時間寫個Python腳本來抓取數據。
美股有三大交易所,分別是NASDAQ、NYSE、AMEX,前面兩個大家聽得比較多,就是傳說中的納斯達克和紐交所,第三個交易的股票數量少,關注得也比較少。這三個交易所的個股數據其實在納斯達克的官方網站(http://www.nasdaq.com)都有,仔細翻找一下好像所有數據都有csv文件下載。三大交易所一共有六千多只股票,要單獨每一個抓取的話首先得有一個代碼列表,這些官方網站都有現成的了,不過這個數據是經常變動的,比如經常有新股上市也有一些股票退市,實時獲取最新的代碼列表總是最全的。
如圖所示,第一列就是股票的代碼,之后的數據抓取就是靠這些代碼來抓取
然后就是找個股數據的下載鏈接和格式
一切準備就緒之后,就要開始寫代碼了。
在這里我用到的package有urllib, BeautifulSoup, sys, os,
csv,一些是系統自帶的,一些是需要安裝的,安裝方式可以通過命令行pip install
安裝缺失的package。在這里我用的是Python3,pip3,如果是Python2的話用的是urllib2而不是urllib。
廢話少說,上代碼
首先引入package,定義一下請求的header信息
接下來就是定義function,先獲取整個交易所的list
然后就是獲取個股的歷史數據了,這里的時間周期有1天、1個月、3個月、6個月、1年、18個月、2年、3年、4年、5年、6年、7年、8年、9年、10年。
上面第一個獲取了交易所的list,那么要把symbol單獨提取出來
然后就是獲取所有個股數據,這里我寫的是有個判斷篩選,可以設置一個閥值和周期,比如可以在download完1年所有數據之后返回年漲幅超過100%的個股列表。
這些function寫完之后,就是需要代碼調用了,因為是在命令行運行的,所以所有的參數都是通過命令行輸入,也可以改成在代碼里面定義。
比如我想獲取納斯達克10年的數據并返回10年漲幅超過500%的個股,那么可以在命令行輸入 python3 US_Share.py NASDAQ 10y
500
然后一個叫NASDAQ的文件夾就會出現在跟Python腳本同一個文件夾里,
所有個股的數據文件都在Data文件夾里。由于數據量龐大,我下載NASDAQ的數據花了大概三萬秒,所以還是比較耗時的,最好不要同時跑幾個腳本抓取,太多并發請求NASDAQ的官網會暫時不返回任何數據了。
如果有一個好的分析模型,可以對這些數據進行分析,然后利用一些package把數據生成圖表就更加直觀了。(這個等我有空再研究研究了)
本文內容轉載自網絡,本著傳播與分享的原則,來源/作者信息已在文章頂部表明,版權歸原作者所有,如有侵權請聯系我們進行刪除!
總結
以上是生活随笔為你收集整理的python抓取交易所_Python百行代码抓取美股三大交易所历史数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js混淆还原工具_JavaScript(
- 下一篇: python无法对存在交叉部分的图片进行