最近這一個月每周六載二哥去學校上 APCS 課, 我就去附近家樂福看書, 連續看了三本理財書後, 想起因為證交所網站改版而停擺超過半年的爬蟲專案, 所租的 Hostinger 主機變成閒置資產實在浪費, 因此這周突然有了動手改版的動力, 接下來的一段時間要集中全力在網站改版上.
今天要盤點的對象是信用額度總量管制餘額表, 其舊網址格式如下 :
# http://www.twse.com.tw/ch/trading/exchange/TWT93U/TWT93U.php?input_date=104/05/20
現在連過去會看到如下說明 :
您好:
本公司全球資訊網已於106年5月23日改版,您目前瀏覽使用的網址並不正確,建議您自首頁(http://www.twse.com.tw/)重新瀏覽,並更新瀏覽器「我的最愛」或「書籤」設定。
如須進一步協助請參閱本公司官網改版問答集(http://www.twse.com.tw/downloads/zh/home/TWSE_QA.pdf),或洽投資人服務中心專線:(02)2792-8188
錯誤代碼為:8348613256455828716
事件代碼為:62855325295449445
TWSE revised the official website on 23rd May, 2017. The URL address you were trying to reach seem to be incorrect or outdated. Please update your browser bookmark(s), thank you.
TWSE official website: http://www.twse.com.tw/
Page Error Code:8348613256455828716
Event ID:62855325295449445
新版網址已改為 :
# http://www.twse.com.tw/zh/page/trading/exchange/TWT93U.html
但這是分頁式網頁, 需選取下拉式選單中的 "全部" 才會能取得全部上市股票與 ETF 的信用交易資料. 如果要取得全頁式網頁則要按左上角的 "HTML" 超連結 :
其網址格式為 :
# http://www.twse.com.tw/exchangeReport/TWT93U?response=html&date=20171110
可見雖然網頁標題使用民國紀元 但 URL 卻用西元紀元. 這日期若傳入非交易日的話會得到一個只有表頭的空表格 (有日期); 若傳入未來日期則顯示 "查詢日期大於今日,請重新查詢!".
信用交易資料放在一個唯一的 tbody 表格中, 而且表格相當乾淨, 沒有任何 inline 的屬性, 所以相當容易剖析, 只要用下列指令去除多於 1 個的空格 :
$data=preg_replace("/([\s]{2,})/","",$data);
然後逐列逐行拆解即可 :
<tbody>
<tr>
<td>0050</td>
<td>元大台灣50</td>
<td>216,000</td>
<td>1,000</td>
<td>0</td>
<td>0</td>
<td>217,000</td>
<td>119,000,000</td>
<td>2,716,000</td>
<td>0</td>
<td>160,000</td>
<td>0</td>
<td>2,556,000</td>
<td>940,467</td>
<td></td>
</tr>
此網頁對應的爬蟲程式為 fetch_twse_daily_debit.php, 除了擷取的網頁網址要改外, 還有網頁表格的起迄信標也要改為如下 :
$start="<tbody>"; //起始字串
$end="</tbody>"; //結束字串
除此之外的程式碼都不用修改.
這張表格中需要擷取的欄位有四個 :
融券賣出 : bearish_sale=$brr[3]
融券餘額 : bearish_balance=$brr[6]
借券賣出 : short_sale=$brr[9]
借券餘額 : short_balance=$brr[12]
都寫入個股的 zxxxx 日報表欄位中. 由於證交所每天 20:30 與 22:30 各更新一次, 因此只要在這兩個時間之後去 query 即可.
"股價持續上漲但借券賣出也同時增加時要注意高點可能已近, 但借券賣出餘額減少卻可能是多頭訊號. 借券餘額增加表示有潛在賣壓, 但借券不一定會賣出, 若借券賣出也增加就要小心了."
參考 :
# http://www.cmoney.tw/notes/note-detail.aspx?nid=15403
沒有留言 :
張貼留言