前言
往期的文章中,基本上都是寫策略。而今天,作者將利用Python抓取東方財富上面的,當日上市公布重大事項內容。
上市公司的公告,也是對我們交易來說也是有一定的意義的。
上市公司的公告有的會在盤中進行公布,我可以做到實時監控重大事項的動態,這將有助于輔助交易。
因此,作者將從東方財富上抓取的上市公司公告,通過釘釘所提供的機器人接口就發送到手機。
實現上市公司重大事項監控的業務邏輯。
想要動態獲取上市公司的公告,程序就必須得一直刷新。用刷新前的數據與刷新后的數據對比。如果最新的數據比上一刻的數據要長,說明有新的公告發布。此時,我們在進行后續的操作。
如下圖所示:
效果如下圖所示:
上述就是,實現監控上市公司最新公告的整個邏輯。由于我們爬取的是動態加載的數據,需要找到存放上市公司公告的數據文件的url才能夠抓取。
作者在接下來會非常詳細的為大家介紹,整個功能是如何實現的!
利用Python 實現監控上市公司最新發布的公告。
在開始之前,首先要保證你已經下載了釘釘PC端,注冊賬號并登陸。作者將用6步完成整個功能的實現,讓我們開始吧。
1.第一步,導入對應的包和隨機請求頭。
作者將使用xpath,來獲取網頁信息,xpath是一個非常簡單實用的工具,建議使用它來進行抓取數據。
如下圖所示:
2.第二步,獲取從00:00 到目前已發布的所有公告數據。
我們程序在啟動之前,要知道已經發布了的公告有哪些,這些數據是不會被推送的。
1) 獲取已發布的公告url。通過xpath獲取每頁的公告,并通過正則提取出每個股票公告詳情頁面的鏈接。
以便我們在后面找到對應的PDF文件鏈接。
代碼如下圖所示:
上圖中的url,我們需要到js文件中才能找到。
如下圖:
url就在header里面。
2) 獲取當日已發布的公告鏈接。
這里作者會通過字符串的截取,將公告的里的時間截取出來和本地計算機時間相比。如果相同,則為當日公告。
反之,則為昨日公告。
鏈接如下圖所示:
代碼實現:
3.第三步,獲取最新公告中的PDF鏈接和標題。
這一步相對復雜一點點。我們首先通過Whlie循環,不斷的運行上面的函數。
1)當獲取到數據后,與上一次對比。如果產生了新的數據,那么就存入待推送公告的列表中。
代碼如下圖所示:
run:
2) 上圖中的info和PDF,就是當日最新發布的公告。我們會通過下面這個函數,抓取公告對應的PDF文件鏈接。
以及,將公告標題的格式格式化。具體格式為(股票代碼):公告標題。
代碼如下圖所示:
run:
(002719):*ST麥趣關于對公司2019年年報的問詢函相關問題的專項說明。.....
4.第四步,將最新公告的鏈接縮短,并向釘釘發送post請求。
由于PDF的鏈接過于長,所以作者通過一個短網址的API將其縮短。
這樣的話,在釘釘接收數據的時候頁面看起來就比較的簡潔。
1) 通過API縮短網址。
代碼如下圖所示:
run:
2) 向釘釘發送post請求。
① 準備工作。
首先,我們需要在釘釘群中點擊-右上角第一個按鈕,進入智能群助手里并添加一個機器人。
如下圖所示:
其次,復制下面的鏈接,接下來我們將最新的上市公司公告數據向這個鏈接發送post請求。
https://oapi.dingtalk.com/robot/send?access_token=a9cc560b7fbbabfc43406f1aba598bd4684ca093a1f44167715366d90a9faa85
② 通過sent_msg()方法,向釘釘推送最新的上市公司公告數據。
代碼如下圖所示:
run:
小結。
上述,實現了上市公司公告實時監控的功能,并通過釘釘接收消息。文章分享的是一個比較初級的版本。
讀者可以根據自己的需要進行修改,例如一次性送多條數據等等。
最后
其實主要的是接收信息的這么一個平臺,如果沒有它,我們抓取的數據就不能夠很好的、及時的傳遞到我們的移動端或pc端。
當然了,我們還可以利用釘釘這個接口將自己的量化交易策略成交回報,發送至手機,以達到監控策略持倉的目的。
文章及代碼僅供交流學習,切勿用于非法用途。