教你用 Python 快速获取行业板块股,辅助价值投资!
大家好,我是菜鳥哥!
本篇文章,我們來聊聊如何根據「?行業板塊?」輔助我們進行價值投資。
#?1.?行業板塊
行業板塊與概念股在定義上還是有很大區別的。
一般來說,概念板塊的風險更大,基于某個消息被短期炒作,很不穩定,因此風險更大
行業板塊是按股票行業進行分類,往往注重于長期,穩定性更高。
在實際投資上,短期可以根據按「 市場熱點?」從概念股進行選股投資,中長期還是建議按「?行業板塊?」選股進行投資。
#?2. 爬取相關板塊及個股列表
目標對象:
aHR0cDovL3N1bW1hcnkuanJqLmNvbS5jbi9oeWJrLw==
2-1??板塊列表
首先,我們使用 「 Toggle JavaScript 」插件發現頁面中的行業板塊數據來源于下面的請求結果
http://**/?q=cn|bk|17&n=hqa&c=l&o=pl,d&p=1020&_dc=1650680429759
其中,參數為 p 和?_dc 為可變參數,p 代表頁碼數(從 1 開始),_dc 代表 13 位的時間戳,其他查詢參數都是固定內容
然后,我們編寫代碼獲取響應數據,使用正則表達式匹配出行業列表的數據
... self.ps_url?=?'http://**/?q=cn|bk|17&n=hqa&c=l&o=pl,d&p={}050&_dc={}' ....def?__get_timestramp(self):"""獲取13位的時間戳:return:"""return?int(round(time.time()?*?1000)) ...def?get_plates_list(self,?plate_keyword):"""獲取所有板塊:return:"""plates?=?[]index?=?0while?True:url?=?self.ps_url.format(index?+?1,?self.__get_timestramp())#?解析數據resp?=?self.session.get(url,?headers=self.headers).textmatch?=?re.compile(r'HqData:(.*?)};',?re.S)result?=?json.loads(re.findall(match,?resp)[0].strip().replace("\n",?""))if?not?result:break#?根據關鍵字,過濾有效板塊temp_plate_list?=?[item?for?item?in?result?if?plate_keyword?in?item[2]]index?+=?1for?item?in?temp_plate_list:print(item)plates.append({"name":?item[2],"plate_path":?item[1],"up_or_down":?str(item[10])?+?"%","top_stock":?item[-6]})return?plates ...最后,根據關鍵字對板塊進行一次篩選,通過板塊名、板塊路徑 PATH、板塊漲跌幅、最大貢獻股票名稱重新組裝成一個列表
注意:通過分析頁面發現,根據板塊路徑 PATH 可以組裝成行業板塊個股列表頁面 URL
比如,行業板塊 PATH 為 400128925,那么行業板塊對應個股列表的頁面 URL 為
http://summary.**/hybk/400128925.shtml
2-2??行業個股列表
爬取行業個股列表和上一步數據展示邏輯一樣,個股列表數據同樣來源于下面請求的結果
http://**/?q=cn|s|bk{}&c=m&n=hqa&o=pl,d&p={}020&_dc={}
其中,bk 后面對應行業板塊 PATH,p 代表頁碼數,_dc 代表 13 位的時間戳
... #?個股 self.stock_url?=?'http://**/?q=cn|s|bk{}&c=m&n=hqa&o=pl,d&p={}020&_dc={}' ....def?get_stock_list(self,?plate_path):"""獲取某一個板塊下所有的個股信息包含:股票名稱、最新價格、漲跌幅、市盈率:param?plate_info::return:"""index?=?0stocks?=?[]while?True:url?=?self.stock_url.format(plate_path,?index?+?1,?self.__get_timestramp())resp?=?self.session.get(url,?headers=self.headers).textmatch?=?re.compile(r'HqData:(.*?)};',?re.S)result?=?json.loads(re.findall(match,?resp)[0].strip().replace("\n",?""))if?not?result:breakindex?+=?1for?item?in?result:if?item[-1]?<?0:continuestocks.append({"stock_name":?item[2],"pe":?item[-1],"price":?item[8],"up_or_down":?str(item[12])?+?"%"})#?按pe降序排列stocks.sort(key=lambda?x:?x["pe"])return?stocks通過正則表達式對響應結果進行匹配后,獲取個股的名稱、PE 市盈率、價格、漲跌幅 4 個關鍵數據
最后,對個股列表按 PE 進行升序排列后直接返回
# 3. 服務化
當然,我們可以將這部分邏輯服務化供前端使用,以此提升用戶的體驗性
比如,使用 FastAPI 可以快速創建兩個服務:根據關鍵字獲取行業板塊列表、根據板塊路徑獲取個股列表
前端以 Uniapp 為例,使用 uni-table 組件展示行業板塊列表及個股列表
部分代碼如下:
最后部署完項目后,在前端頁面就能根據板塊名選擇合適的個股進行投資了
# 4. 總結一下
由于行業板塊更適用于中長期投資,我們只需要根據某一個關鍵字篩選出一個板塊,然后在板塊下的個股列表中可以非常直觀地看出市盈率較低的個股進行投資即可。
需要源碼的同學,請在后臺輸入:小助手,找他領取(暗號:行業板塊)
這是我開發的機器人公眾號小號,目前增加了天氣查詢,955公司名單,關注時間查詢;后面還會增加圖片功能和每日送書抽獎送書活動,以及調戲功能,歡迎來體驗,捧場。
全新機器人公眾號上線啦,歡迎調戲!
推薦閱讀: 入門:?最全的零基礎學Python的問題? |?零基礎學了8個月的Python??|?實戰項目?|學Python就是這條捷徑 干貨:爬取豆瓣短評,電影《后來的我們》?|?38年NBA最佳球員分析?|? ?從萬眾期待到口碑撲街!唐探3令人失望? |?笑看新倚天屠龍記?|?燈謎答題王?|用Python做個海量小姐姐素描圖?|碟中諜這么火,我用機器學習做個迷你推薦系統電影 趣味:彈球游戲? |?九宮格? |?漂亮的花?|?兩百行Python《天天酷跑》游戲! AI:?會做詩的機器人?|?給圖片上色?|?預測收入?|?碟中諜這么火,我用機器學習做個迷你推薦系統電影 小工具:?Pdf轉Word,輕松搞定表格和水印!?|?一鍵把html網頁保存為pdf!|??再見PDF提取收費!?|?用90行代碼打造最強PDF轉換器,word、PPT、excel、markdown、html一鍵轉換?|?制作一款釘釘低價機票提示器!?|60行代碼做了一個語音壁紙切換器天天看小姐姐!|年度爆款文案
1).臥槽!Pdf轉Word用Python輕松搞定!
2).學Python真香!我用100行代碼做了個網站,幫人PS旅行圖片,賺個雞腿吃
3).首播過億,火爆全網,我分析了《乘風破浪的姐姐》,發現了這些秘密?
4).80行代碼!用Python做一個哆來A夢分身?
5).你必須掌握的20個python代碼,短小精悍,用處無窮?
6).30個Python奇淫技巧集?
7).我總結的80頁《菜鳥學Python精選干貨.pdf》,都是干貨?
8).再見Python!我要學Go了!2500字深度分析!
9).發現一個舔狗福利!這個Python爬蟲神器太爽了,自動下載妹子圖片
點閱讀原文,看B站我的視頻!
總結
以上是生活随笔為你收集整理的教你用 Python 快速获取行业板块股,辅助价值投资!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: B/S架构
- 下一篇: air dots 配对_我告诉你aird