[疫情學習]應學員要求整理最近VBA與Python教學課程
提升上課的品質,學員只需抽空重複聽講,
並不斷練習,再將所學反覆用在工作上,
成效良好,除了效率提高外,
自己的專業技能信心提高,工作自然勝任無虞,
對未來的職涯規劃也更有希望。
最新課程整理如下,2021/5/23更新
[疫情學習]應學員要求整理最近VBA與Python教學課程
用EXCEL VBA網路爬蟲擷取YAHOO股市資料
用EXCEL錄製巨集爬取YAHOO股市資料,
會有亂碼的問題,用PYTHON來爬取,
對一般人來說門檻又太高,
如果如何在EXCEL VBA就可以輕鬆爬取網路資料,
就是本文所要分享的重點。
當然本文不是要推崇VBA有多棒,Python不好用,
我的想法是只要用對工具,工作可以很愜意,
可以協同應用工具,讓彼此都能發揮最大的強項,
是本文寫說明的,
另外順便分享在EXCEL除了用匯入資料從WEB功能外,
也可以用IE物件,
功能很像是Python的requests加上beautifulsoup4差不多功能,
不同的是,可以將下載的資料直接放在EXCEL,
也就是把EXCEL當成資料庫用,這樣可以減少很多資料庫匯入匯出的麻煩。
首先,YAHOO股市當日行情表網址:
https://tw.stock.yahoo.com/class-quote?sectorId=1&exchange=TAI
Sub 下載YAHOO_水泥()
'清除資料
Cells.Clear
'1.建立IE物件
Set ie = CreateObject("internetexplorer.application")
'2.連線到網址
ie.navigate "https://tw.stock.yahoo.com/class-quote?sectorId=1&exchange=TAI"
'3.等待3秒
Application.Wait (Now + TimeValue("0:00:5"))
'4.取得網頁中第1個表格
Set tbl = ie.document.getElementsByTagName("ul")(5)
'5.取得表格中所有的列<tr>
Set trs = tbl.getElementsByTagName("li")
' '6.取得列中的每一個儲存格內文字<td>如果沒有<td>抓<th>
For i = 0 To trs.Length - 1
Set tds = trs(i).getElementsByTagName("div")
For j = 5 To tds.Length - 1
Cells(i + 1, j - 4) = tds(j).innertext
Next
Next
Columns("C").Delete
ie.Quit
Rows(1).Insert
Range("A1") = "股票名稱": Range("B1") = "代號": Range("C1") = "股價"
Range("D1") = "漲跌": Range("E1") = "漲跌幅(%)": Range("F1") = "開盤"
Range("G1") = "昨收": Range("H1") = "最高": Range("I1") = "最低"
Range("J1") = "成交量 (張)": Range("K1") = "時間"
Columns.AutoFit
End Sub
教學影片分享:
函數東吳進修推廣部, EXCEL, EXCEL VBA 函數,程式設計,線上教學 |