python如何采集同花顺股票日度历史数据
今天研究同花順股票歷史數據采集比較有意思,所以記錄一下。
抓包請求分析
我們通過下面鏈接訪問同花順某只股票詳情頁面,這里以【貴州茅臺】為例
http://stockpage.10jqka.com.cn/600519/我這里使用火狐瀏覽器來抓包,請求之前按下 F12 打開瀏覽器控制臺,然后輸入鏈接回車訪問,控制臺就會進行抓包,等待頁面加載完成,能看到日度數據后,就可以停止抓包了。
這里我們以倒數第二根線為準,因為還在交易,倒數第一根線的數值是不斷變化的,不好分析是哪一個請求。所以記錄下倒數第二根線的開盤價、收盤價。在瀏覽器控制臺進行搜索。
奇怪的事情就發生了,你會發現搜索不到任何相關的數據返回,出現這種情況有一下幾種可能:
1、使用的是WS協議(webSocket協議),在股票數據中比較常見;2、可能使用的是整數,而非小數,去掉小數點搜索一下;3、傳輸數據進行了加密;通過分析,我覺得如果要獲得某只股票歷史數據,股票代碼應該是一個必要參數(只要他股票代碼不加密),所以直接搜索有股票代代碼參數的鏈接,就可以減少分析范圍,發現本次是第三種情況,數據進行了加密,歷史日度數據請求鏈接如下:
https://d.10jqka.com.cn/v6/line/hs_600519/01/all.js響應數據分析
1、sortYear分析
通過數據名稱、格式,應該是數據的年份。但是第二個數字86、234就不知道是什么意思了,猜測了一下應該是每年的數據量(后來統計了一下數據量是能對上的,說明猜測正確)。
2、price分析
通過名稱應該是我們要的價格,會發現和我們界面上看到的數值不一樣,所以搜索也搜索不到對應的。通過研究發現需要每4個劃分為一組,計算規則如下:
# price中的數據4個一組, # 最低價:每組(第1個)/ 100 # 開盤價:每組(第1個 + 第2個)/ 100 # 最高價:每組(第1個 + 第3個)/ 100 # 收盤價:每組(第1個 + 第4個)/ 1003、volumn分析
成交量就不存在分組,一對一關系。只是也是用整數表示的,要除以100才是真實值
所有難點都講完了,python爬蟲采集代碼就比較簡單,python請求上沒有任何坑,所以就不在累述。
總結
以上是生活随笔為你收集整理的python如何采集同花顺股票日度历史数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu11.10输入法推荐-ibu
- 下一篇: 【Java基础】Java开发环境搭建并编