Excel 股市資料抓取服務

提供Excel 股市資料抓取服務
可透過下列方式聯絡我
Email: iamaraymond@yahoo.com.tw
(FB請先加我好友再私訊,不然會跑到陌生訊息)

課程:
Excel VBA 金融資料抓取 | 打造股票研究系統 (學生數: 602,學員評價5顆星)
無痛起步-Excel VBA超入門實戰(學生數: 413,學員評價5顆星)


2018年10月30日 星期二

微軟MVP沒教你的技巧 | Excel VBA入門實戰 開課!

快兩個月沒寫部落格了,這兩個月歷經了許多人生中的大事
但在忙碌之餘,也花蠻多時間錄了一個新課程
在Tibame開設的新課程

這次的課程總長度10.7個小時
包含了基礎語法用錄製巨集小兵立大功
以及三個外面鮮少見到的主題: 事件驅動表單製作以及錯誤處理

會實作的範例(僅部分列出):
製作動態圖表-學員成績單與成績分佈



2018年9月6日 星期四

Excel VBA 抓取樂透網站

最近一位學生傳了一個連結給我
問如何抓取表中的那些開獎數字

我對此網站內容沒甚麼興趣,畢竟我也沒玩過樂透
但我對如何抓此網站的資料倒是十分有興趣

網站架構不算複雜,只能算是一個小型網站
然而我認為這對於初學者是難度頗高的網站

2018年8月17日 星期五

Excel VBA 下載CSV

Excel VBA有蠻多種下載CSV的方式
1.使用Workbooks.Open(網址)
2.使用QueryTable
3.使用XMLHTTP物件

以上一篇文章抓的三大法人買賣超日報為範例

2018年8月16日 星期四

Excel VBA 抓取三大法人買賣超日報(搭配Javascript)

看到一位網友提問,希望抓取證交所三大法人買賣超日報
於是便自己先抓抓看
找到資料源後,發現資料是以JSON呈現,而且還是比較難處理的格式
想到很久以前有學著使用Javascript來處理這種格式,因此今天來複習一下

2018年8月10日 星期五

Excel VBA 抓取上市櫃股票代號

很基本的東西,但卻意外地難找到資料源

今天好不容易找到一個蠻不錯的資料源
直接寫進程式碼

2018年8月9日 星期四

利用VBA選定Excel儲存格截圖

很久以前找了一支截圖的程式
可以針對Excel的儲存格範圍(例如A1:AD47)來做截圖
並且放在指定的資料夾下

簡單修改了一下

2018年8月5日 星期日

VBA延伸學習推薦資源

開線上課程至今快3個月了,也累積了一些學生
有幾位認真的學生在看完線上教學後,來信詢問是否有進階學習的資源

對於不同需求有不同的回答

2018年7月16日 星期一

Excel VBA爬蟲 VS 其他語言爬蟲


最近看到網友問到「Excel VBA跟其他語言爬蟲有甚麼差異?有甚麼優點?」

我以教會零程式基礎的同學如何做網頁資料擷取(網路爬蟲)的角度來切入

以下是我的想法,歡迎大家交流

其實爬蟲技術都是一樣的,因為主要是觀察網頁有哪些特點,並加以運用來抓到自己想要的資料,而選擇使用Excel VBA有幾個優點:

2018年7月1日 星期日

VBA結合line機器人自動推送訊息

最近花了許多時間研究Line機器人,以前都只能用line notify來發送給自己的訊息
但這麼會讓所有不同類別的訊息全部夾雜在line notify
如果可以用不同的機器人來推播不同的消息就好了
EX:一個機器人專門推播股票新聞,一個機器人專門推播天氣狀況...等等

今天終於學會怎麼做了!

2018年6月16日 星期六

Excel VBA 連結google試算表

原本以為這會牽涉到很難的技術,沒想到比想像中的容易得多

首先先製作一個google表單
別做得太複雜,用兩個問題就好



2018年6月15日 星期五

使用dictionary做條件篩選

今天想做一個在M3儲存格輸入產業別
就會自動到A到J欄找到該產業的個股
並且從M6開始往下列


如下圖

最直觀的想法就是用迴圈全部找一遍
並且新增一個變數 j,當作列數
若條件符合,就放入cells(j,"M")

2018年6月9日 星期六

Excel VBA 自動下載期交所三大法人選擇權資料

Excel VBA 網路資料蒐集 完整教學:


資料來源網址

此程式可讓使用者輸入欲查詢的天數
例如想要收集近20天的資料
就在inputbox輸入20
如果想固定收集特定天數的資料
也可在程式碼的inputbox改成你想要的天數



2018年5月29日 星期二

2018年5月26日 星期六

Excel VBA 自動下載網路檔案

Excel VBA 網路資料蒐集 完整教學:


今天想來複習一下用VBA下載網路檔案的語法
於是想到了從公開資訊觀測站自動下載年報檔案

只要在Excel的A3儲存格輸入股票代號
接著從A6開始往下輸入要抓的年度即可

2018年5月24日 星期四

HTMLFile物件的侷限性

今天在抓新聞資料時,想使用HTMLFile物件去抓新聞內文

http://www.cna.com.tw/news/afe/201805230211-1.aspx

在抓內文時可看到有很多像是Div、P這種很難定位的Tag,也沒有ID可以使用
但幸好找到了section這個特別的Tag

2018年5月21日 星期一

Excel VBA Find語法+SelectionChange事件

Excel VBA 網路資料蒐集 完整教學:
http://raymondchiendtrt.blogspot.tw/2018/05/vba_72.html

在麻辣家族中有網友問到:

請問有什麼方式可以點選上方,小明的名子,然後接跳到A8位置
點選小王 位置移動到A25 小綠A40 小黑A65

http://forum.twbts.com/thread-20816-1-1.html





Excel VBA抓取股價資料


Excel VBA 網路資料蒐集 完整教學:

有位網友提供了一個連結:
http://webrtqt.fortunengine.com.tw/rtdata/k-chart/day-2330.txt?ts=1526775289018

裡面內容

其實這也是抓資料常會碰到的格式
但既然資料在哪裡已經知道了
接下來就是只要簡單的資料整理就好了

Excel VBA抓台灣匯率表的資料


Excel VBA 網路資料蒐集 完整教學:

近期在用Excel VBA抓台灣匯率表的資料
http://rate.bot.com.tw/xrt?Lang=zh-TW



2018年5月17日 星期四

WinHttp物件:自動忽略憑證錯誤

在用WinHttp寫網路爬蟲時,最怕遇到一種錯:


對於非資訊背景的我,即使找到了相關的文件,也猶如在看天書一樣完全無法理解

2018年5月15日 星期二

如何每隔一段時間自動執行程式?

在麻辣家族中有一則發問:

如何每隔30分鐘讓程式執行複製貼上的動作
將A欄的值複製到C欄,下一次到D欄
一直到執行20次為止

我一開始的想法是用
Application.wait now()+timeValue("00:30:00")
就好
這段語法會讓程式先停住30分鐘後再執行下一步

2018年5月14日 星期一

VBA錯誤處理流程(全圖解)

Excel VBA 網路資料蒐集 完整教學:
https://raymondchiendtrt.blogspot.com/2018/08/vba_22.html

一般來說,當我們的程式執行起來沒有錯誤時,可以直接執行到底



2018年5月13日 星期日

連結


資安:
https://ithelp.ithome.com.tw/users/20103559/ironman/1202?page=1
https://ithelp.ithome.com.tw/articles/10192361

網路爬蟲:
http://club.excelhome.net/thread-893760-1-1.html
http://club.excelhome.net/forum.php?mod=viewthread&tid=869382&page=1#pid5952249
https://www.mobile01.com/topicdetail.php?f=511&t=4737630&p=1
http://club.excelhome.net/thread-1159783-4-1.html

Fiddler教學
http://club.excelhome.net/thread-1159783-1-1.html

Github新手教學
https://www.youtube.com/watch?v=py3n6gF5Y00

[教學文] 利用VBA抓股價資料--找出網站資料庫


之前的文:
https://raymondchiendtrt.blogspot.tw/2018/05/vba.html
https://raymondchiendtrt.blogspot.tw/2018/05/vba-xmlhttp.html

其實要找出網路資料藏在哪一個Request並不是一件困難的事,尤其像現在有各式各樣抓取網路封包的工具,如各瀏覽器的開發人員工具、Fiddler等等,而對我來說,我自己是比較習慣使用Chrome開發人員工具,因此就以此為基礎來寫教學文

首先,打開開發人員工具的方法有2個,第一個是直接按下F12,第二個是在網頁任意處按下「檢查」,即可呼叫出開發人員工具,為什麼這個工具這麼重要呢?

前面有說過,我們的網頁是由Client端發出的各個Request拿回來的Response所拼成的,而這個工具在被打開後,會記錄發送了哪些Request,整齊的列在上面

要找出藏有資料的Request有幾個小方法:
1.通常會藏在”doc””XHR”,也有少數是藏在”JS”
2.名稱通常會包含關鍵字,例如股票代號、或是該商品的縮寫、代號等等的

以下開始圖文教學(以抓取股價為例)

2018年5月9日 星期三

VBA網路爬蟲-XMLHTTP物件


之前的文
VBA網路爬蟲(網路資料蒐集)--簡述原理

要使用XMLHTTP,首先要先引用XMLHTTP物件
引用是一個甚麼概念呢?
VBA最基本的功能大部分是侷限在Excel的內部操作上
而引用則是把VBA帶出了Excel,來到外面的世界
變得可以操控文件、資料夾、IE瀏覽器等等
就像是請來了一個專家,你用VBA告訴這個專家我要做甚麼
舉大家比較熟的IE為例,其實當大家在使用createObject("InternetExplorer.Application")時
你就像聘請一位專家,當你用VBA寫下 IE.navigate"網址",就是請他把IE瀏覽到某個網頁

解決XMLHTTP緩存問題


http://forum.twbts.com/thread-20749-1-1.html

今天在幫忙解問題時,遇到緩存的問題
在我們使用XMLHTTP第一次發送request時,他除了把資料抓下來以外,還會有個有點像「記憶」的功能,也就是說當你下次發送相同request時,他會直接去用他記憶的內容把結果回傳給你

2018年5月8日 星期二

2018年5月7日 星期一

VBA網路爬蟲(網路資料蒐集)--簡述原理



 http://forum.twbts.com/thread-20748-1-1.html

最近回復了許多帖子都是關於如何用VBA做網路爬蟲,抓取如股票資料等資訊,所以想說直接寫成一篇教學文,讓對此有興趣的朋友有個入門的管道,只是因為這些都是自學而來,若有錯誤或建議還請版主以及版上的各位高手不吝指教。

小弟學習使用VBA做網路爬蟲有一陣子了,抓過不少資料,也累積了一些心得
小弟比較熟悉的爬蟲方式有三種:
1.QueryTable(也有人稱QT)
2.操控IE
3.XMLHTTP(這物件的兄弟蠻多的,如MSXMLWinHttp等等的)
其中12的方法在論壇中已經使用過許多次,建議大家如果有需要的話可以自行搜尋一下相關的帖子(或是之後我在寫教學文)

XMLHTTP似乎較少人運用,但就速度上來說,其實是比QT法和IE法快上好幾倍,簡單講一下原因,不知道各位有沒有想過,當我們在網路上按下某個連結時,到底發生了甚麼事呢?