鏘鏘鏘!!! 距離上一篇要挑戰用python抓取公開資訊站資料的文章,轉瞬間就過了半年多。只能說歲月不饒人,拖延症大爆發。工作繁忙絕對是最好的藉口。
經過半年的思索,與重新整理股票追蹤的方式,加上近期對這九年來的投資紀錄做了一個總整理,我理出了一個比較恰當且親民的方式提供給大家。 我打算在以Google雲端為基底,在雲端Google Sheet(Excel)上建立選股追蹤清單,至於財務數據,則定期使用python爬蟲抓取後,用複製貼上的方式到Google Sheet上建立追蹤模式。這部分會慢慢分享給大家。
廢話不多說,今天先來貢獻第一篇: 抓取累積月營收年增率。
這個小品的嘗試是最基礎的延伸,我會慢慢套用到各種不同的財務報表指標,但最終目的是擷取這些資料然後複製貼到Google Sheet上去做後續追蹤,我會慢慢分享各種小技巧,也歡迎箇中高手一起討論。
選用"月累計營收年增率"的參考價值在於月營收的公佈是財報揭露的最快更新項(每月一次),他能協助投資人在第一時間先了解這間公司營收的走向,進而當作公司成長、衰退的其中一個指標。
關於用Python抓取公開資訊站的方式,我是參考這篇網站的步驟來進行,建議使用者可以先拜讀這個網站的做法。 我僅使用其應用在我需要的部分。
大致上,目前的公開資訊站是採用post的方式來訪問資料。而今天要抓取月營收的資料,以目前公開資訊站的檢索網址為如下:https://mops.twse.com.tw/mops/web/t05st10_ifrs (未來會不會改變還不清楚)
粗略步驟演示如下,若需要更詳細的說明請在留言給我,我會盡可能回覆。
1. 當使用者點開網址後,可看如下顯示 (我使用Chrome瀏覽器):
有了這些關鍵參數,使用我提供的範例python 腳本(附上腳本下載連結),經過測試後,可以抓取表格中的第八列:增減百分比 ,也就是月累積營收年增減率。
使用程式時,可在latest_revenue這個變數裡面取得20.41這個值。
以上,我們就可以成功抓取表格中"增減百分比"這個值。 當然你說如果想要抓取本月的"106,127"這個數值可不可以。 當然可以,只要將程式碼中的最後一行改為latest_revenue.append(dfinfo.iloc[0,1]) 就可以囉。
至於程式碼的細項說明,我就不特別花時間談了,有想深入了解的人再留言給我,我會找時間一一為大家解答唷!
================================程式碼================================
"""
Day1範例-抓取每月累積營收年增率
"""
import requests
import pandas as pd
#####
url = 'https://mops.twse.com.tw/mops/web/t05st10_ifrs' #獨立報表-採用ifrs後肢月營收
year=111 # 使用者輸入處: 年份(民國)
month=2 # 使用者輸入處:月份(1,2,3...10,11,12)
co_id=6263 # 使用者輸入處 :公司代碼
###
latest_revenue=[]
if month>=10:
month=str(month)
else:
month="".join(['0',str(month)])
postinfo={
'encodeURIComponent':1,
'step':1,
'firstin':1,
'off':1,
'queryName':'co_id',
'inputType':'co_id',
'TYPEK':'all',
'isnew':False, #false:歷史資料 true:最新資料
'co_id':co_id,
'year':str(year),
'month':month,
}
headers = {'Connection': 'close'} # prevent pop up error:max retries exceed with url
info= requests.post(url,postinfo,headers=headers) #post to URL
info.encoding = 'utf8'
dfinfo = pd.read_html(info.text, header=None)[10] #data is in list[10]
latest_revenue.append(dfinfo.iloc[7,1]) #row-7 累計增營收減百分比
沒有留言:
張貼留言