http://mops.twse.com.tw/mops/web/t164sb04EPS是菜籃族,號子族有玩股票的人大概都懂的專有名詞,它精簡的表示一家公司的獲利情況,所謂每股盈餘。
我們來試抓一千多家公司的EPS。
抓EPS
這麼常用的名詞在財報上是放著
基本每股盈餘 102年第1季 101年第1季
基本每股盈餘 1.53 1.29
稀釋每股盈餘
稀釋每股盈餘 1.53 1.29
和財報狗的http://statementdog.com/analysis/tpe/#2330台積電每股盈餘比對,無誤。那怎麼抓呢?
公開資訊觀測站,沒有轉cvs的服務。所以從網頁抓data.
先分析(綜合)損益表的樣子及網址。
IFRSs後(102年)網址是:POST /mops/web/ajax_t164sb04 encodeURIComponent=1&step=1&firstin=1&off=1&keyword4=&code1=&TYPEK2=&checkbtn=&queryName=co_id&TYPEK=all&isnew=false&co_id=2330&year=102&season=01
IFRSs前(101(含)之前)網址是:POST /mops/web/ajax_t05st34 encodeURIComponent=1&step=1&firstin=1&off=1&keyword4=&code1=&TYPEK2=&checkbtn=&queryName=co_id&TYPEK=all&isnew=false&co_id=2330&year=101&season=02
用window你可用fiddle ,筆者在家用firfox/live http headers
接著用之前用過的beautiful soup 和urllib,
import urllib.request
from bs4 import BeautifulSoup
url = 'http://mops.twse.com.tw/mops/web/ajax_t164sb04?'\
'encodeURIComponent=1&step=1&firstin=1&off=1&keyword4=&code1=&TYPEK2=&checkbtn=&queryName=co_id&TYPEK=all&isnew=false&co_id=2330&year=102&season=01'
response = urllib.request.urlopen(url)
html = response.read()
sp = BeautifulSoup(html.decode('utf8')) #cp950
print(sp)
output:
--------------------------------------------------------------
<tr>
<td class="even" style="text-align:left;white-space:nowrap;"> 基本每股盈餘</td>
<td class="even" style="text-align:right;"> 1.53</td>
<td class="even" style="text-align:right;"></td>
<td class="even" style="text-align:right;"> 1.29</td>
<td class="even" style="text-align:right;"></td>
</tr>
---------------------------------------------------
從裏面抓出EPS
trs=sp.find_all('tr')
for tr in trs:
tds=tr.find_all('td')
for td in tds:
if (td.get_text().strip()=="基本每股盈餘") :
if (tds[1].get_text().strip()!=''):
print('2330','102','1',tds[1].get_text().strip())
print('2330','102','1',tds[3].get_text().strip())
output:
2330 102 1 1.53
2330 102 1 1.29
這時,腦海中浮現,只要有心,人人可以是食神,只要有甜美的湯(beautiful soup),人人可以抓觀測站的data. 甜美的湯太美味了。
底下就不再示範細節。一個公司的List, 逐筆的替換URL的公司,年,季(損益表是季為單位),
抓網頁的data. 寫入EPS table. 第一季是1/1,第二季是4/1,第三季是7/1,第八季是10/1轉換成數字時間。
這時才想到,EPS一年四筆,股價是一年12筆。實作才發現有點技巧。
看起來,財報狗站長在架站時,還真多不足為外人一一細數的困難。