利用網路爬蟲程式爬取選股網站資料
網路上有很多的股票資訊網站,這些股票資訊網站中有部份的網站會提供選股的功能,而且還有部份提供可以調整參數的功能,只要不是太過於冷門或客制化的指標參數,大多都可以利用這些網站來達成我們選股的目的。
![]() |
券商提供的選股介面,為了避免造成單一券商流量大增,所以請自行搜尋各自的券商 |
一、如何用 Excel 內建連線選股
這個方法是利用 Excel 內建的 Web 連線功能,把選股的參數儲存在網址內,做法是選取上方工具欄中的資料=>從Web連線,輸入網址後,Excel 就會幫我們把該選股網頁的內容解析出來,再選出我們要的表格後,就會把選出來的股票在 Excel 內顯示出來,未來要更新,只要在上方工具欄中的資料=>全部重新整理按一下就會全部幫我們自動更新了。
Excel 內建連線選股實際操作
紅框處為選股參數,只要先把條件選好按一次選股就看的到了
點選資料標籤=>從Web
貼上剛剛的網址
找出選股的結果在那一個Table裡後按載入
載入完成後直接顯示在 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
Excel .jqy連線選股優缺點
這個方法優缺點跟使用 Web 連線差不多,都是一樣第一次設定時比較麻煩,後面就可以一鍵自動更新,但速度也是偏慢。
三、使用錄製巨集功能做出網路爬蟲程式選股
針對 Excel VBA 的初學者,微軟提供了錄製巨集的功能,可以把我們操作 Excel 的過程轉化為程式碼,不過錄製出來的程式碼還是要修改一下才能用。
如何用錄製巨集功能做出爬蟲程式
![]() |
點選開發人員標籤=>錄製巨集=>操作一、Excel 內建連線功能步驟 |
![]() |
錄製的程式碼 |
![]() |
把不必要的程式碼註解或刪除,並加上紅框的那二行程式碼 |
![]() |
使用VBA爬蟲選股後的效果 |
![]() |
點選開發人員標籤=>插入=>新增一個按鍵並指定巨集 |
![]() |
把按鍵放到自已喜歡的位置,並在VBA內把"Destination:=Range("A1"))"這一段程式碼改為"Destination:=Range("C10"))", 這樣子按鍵才不會因為表格更新不見。 |
錄製巨集做出爬蟲的優缺點
這個方法適合會一點 VBA 或是想學 VBA 的人使用,優點是相當方便,只要做過一次,下次就可以用程式來操作了,缺點是用錄製巨集功能寫出來的程式碼比較長,裡面還會有很多不必要的操作過程的程式碼,而且錄製完成後還是有些小地方要修改,才能使用。
速度的話跟前二個方法並不會差很多,因為都一樣是用 Web 連線方式取得資料,只是操作的方法不同而以。
以上三個方式都只算是網路爬蟲基本的應用,另外還有XMLHTTP的方式做出來的爬蟲,速度比較快,但這部份需要學習的知識也就變很多了,而這篇文章所介紹的三個方法基本上可以應付大部份的網站,對於一般的投資人來說也夠用了。
請問你excel 的版本及開發環境是在Window10或macOS?
回覆刪除我用win10開發的
回覆刪除XMLHTTP 之前也是有稍接觸過,還沒真的學好它,iqy 以前也是使用過但沒有拿來做股票過,因為股票程式也是最近才開始感興趣,也對股票不熟,平時是有用vba的習慣,的確如所說的 若會使用 也操作得當 Excel 已經很能應付大半的需求了。比學好紮實的 python可能需要花的工時來的快。
回覆刪除如果不在意速度的問題,EXCEL VBA 是一個很好的選擇,對於一般人來說,Excel還是比較孰悉的工具
刪除可惜mac的excel,功能被閹割了,沒有辦法做
回覆刪除excel是微軟出的,所以還是要用windows比較好用哦
刪除張貼留言