網路爬蟲是收集股票數據的一個專門技術,利用爬蟲收集到的數據我們可以拿來做分析、回測、選股.....等等的功能,如果只是想要做出有選股功能的 Excel ,是不是還要先把所有數據爬下來才能做呢??

利用網路爬蟲程式爬取選股網站資料

網路上有很多的股票資訊網站,這些股票資訊網站中有部份的網站會提供選股的功能,而且還有部份提供可以調整參數的功能,只要不是太過於冷門或客制化的指標參數,大多都可以利用這些網站來達成我們選股的目的。
券商提供的選股介面
券商提供的選股介面,為了避免造成單一券商流量大增,所以請自行搜尋各自的券商
想要利用 Excel VBA 做出的網路爬蟲程式其實並不難,這篇文章就稍微說一下有那幾種方法可以利用 Excel 做出一鍵自動更新的選股程式吧。

一、如何用 Excel 內建連線選股

這個方法是利用 Excel 內建的 Web 連線功能,把選股的參數儲存在網址內,做法是選取上方工具欄中的資料=>從Web連線,輸入網址後,Excel 就會幫我們把該選股網頁的內容解析出來,再選出我們要的表格後,就會把選出來的股票在 Excel 內顯示出來,未來要更新,只要在上方工具欄中的資料=>全部重新整理按一下就會全部幫我們自動更新了。

Excel 內建連線選股實際操作

紅框處為選股參數,只要先把條件選好按一次選股就看的到了

選股參數

點選資料標籤=>從Web

資料標籤=>從Web

貼上剛剛的網址

貼上網址

找出選股的結果在那一個Table裡後按載入

選股的結果

載入完成後直接顯示在 Excel 內

載入完成後直接顯示在 Excel 內

未來要更新的話就點選資料標籤=>全部重新整理,這樣子就可以一鍵自動更新了

一鍵更新選股

Excel 內建連線選股優缺點

這個方法適合不會寫程式或不想寫程式的人使用,但缺點是連線速度會比較慢,如果一次更新多個選股,就會明顯感受到速度的差別。

二、如何用 Excel .jqy連線選股

先來介紹一下 .jqy 是什麼,上一個使用內建 Web 連線選股的過程中,第一次操作時會有一些設定要選,例如要那一個表格、捉下來的數據要用什麼格式、資料要放在那裡...等等的設定,而 .jqy 檔就是把這些設定跟網址都另存為一個 Web 查詢設定檔,未來只要呼叫這個設定檔後就會自動幫我們完成連線選股的功能。

Excel .jqy連線選股實際操作

使用記事本,新增以下資訊,並另存為.jqy檔
WEB
1
網址

Selection=2
Formatting=RTF
PreFormattedTextToColumns=True
ConsecutiveDelimitersAsOne=True
SingleBlockTextImport=False
DisableDateRecognition=False
DisableRedirections=False

點選資料標籤=>現有連線=>瀏覽更多

jqy連線1

找出剛剛另存jqy檔的路徑載入jqy檔

jqy連線2

設定資料存放位置

jqy連線4

一樣按重新整理更新資料

jqy連線5

Excel .jqy連線選股優缺點

這個方法優缺點跟使用 Web 連線差不多,都是一樣第一次設定時比較麻煩,後面就可以一鍵自動更新,但速度也是偏慢。

三、使用錄製巨集功能做出網路爬蟲程式選股

針對 Excel VBA 的初學者,微軟提供了錄製巨集的功能,可以把我們操作 Excel 的過程轉化為程式碼,不過錄製出來的程式碼還是要修改一下才能用。

如何用錄製巨集功能做出爬蟲程式

點選開發人員標籤=>錄製巨集=>操作一、Excel 內建連線功能步驟

錄製的程式碼

把不必要的程式碼註解或刪除,並加上紅框的那二行程式碼

使用VBA爬蟲選股後的效果

點選開發人員標籤=>插入=>新增一個按鍵並指定巨集





把按鍵放到自已喜歡的位置,並在VBA內把"Destination:=Range("A1"))"這一段程式碼改為"Destination:=Range("C10"))", 這樣子按鍵才不會因為表格更新不見。


錄製巨集做出爬蟲的優缺點

這個方法適合會一點 VBA 或是想學 VBA 的人使用,優點是相當方便,只要做過一次,下次就可以用程式來操作了,缺點是用錄製巨集功能寫出來的程式碼比較長,裡面還會有很多不必要的操作過程的程式碼,而且錄製完成後還是有些小地方要修改,才能使用。
速度的話跟前二個方法並不會差很多,因為都一樣是用 Web 連線方式取得資料,只是操作的方法不同而以。

以上三個方式都只算是網路爬蟲基本的應用,另外還有XMLHTTP的方式做出來的爬蟲,速度比較快,但這部份需要學習的知識也就變很多了,而這篇文章所介紹的三個方法基本上可以應付大部份的網站,對於一般的投資人來說也夠用了。

6 留言

  1. 請問你excel 的版本及開發環境是在Window10或macOS?

    回覆刪除
  2. XMLHTTP 之前也是有稍接觸過,還沒真的學好它,iqy 以前也是使用過但沒有拿來做股票過,因為股票程式也是最近才開始感興趣,也對股票不熟,平時是有用vba的習慣,的確如所說的 若會使用 也操作得當 Excel 已經很能應付大半的需求了。比學好紮實的 python可能需要花的工時來的快。

    回覆刪除
    回覆
    1. 如果不在意速度的問題,EXCEL VBA 是一個很好的選擇,對於一般人來說,Excel還是比較孰悉的工具

      刪除
  3. 可惜mac的excel,功能被閹割了,沒有辦法做

    回覆刪除
    回覆
    1. excel是微軟出的,所以還是要用windows比較好用哦

      刪除

張貼留言

較新的 較舊