Board logo

標題: Excel VBA 抓HTML 中的某一個Table [打印本頁]

作者: BarryHuang621a    時間: 2014-7-20 16:49     標題: Excel 外部資料

請問有人知道怎樣用Excel取得外部資料,我想要拿到Goodinfo這個link右邊下面的集保分級的資訊
http://www.goodinfo.tw/stockinfo/EquityDistributionClassHis.asp?STOCK_ID=1314

但是透過這樣的IQY分是要不會來,有大大知道怎樣弄嗎?
WEB
1
http://www.goodinfo.tw/stockinfo/EquityDistributionClassHis.asp?STOCK_ID=1314

Selection=15
Formatting=None
PreFormattedTextToColumns=True
ConsecutiveDelimitersAsOne=True
SingleBlockTextImport=False
DisableDateRecognition=False
DisableRedirections=False
作者: BarryHuang621a    時間: 2014-7-20 21:58     標題: VBA 抓取網頁內的某一個Table

請問各位大大,有人知道怎樣抓下列這個網址裡面的大Table嗎? 透過VBA

http://www.goodinfo.tw/stockinfo/StockSorter.asp?
作者: ssthree    時間: 2014-7-21 00:59

不知以下的連結可否幫到您...
http://white5168.blogspot.tw/2012/08/excel-vba_2330.html
作者: BarryHuang621a    時間: 2014-7-21 23:25

回復 2# ssthree


   不好意思還是搞不太定,在我所需要的網址中
www.goodinfo.tw/StockInfo/StockSorter.asp

我知道我要的Table是第8個,哪位大大可以給一下簡單的VBA碼讓小弟參考嗎?我用過下列這樣的方式但是就是還是有問題
先用 ActiveSheet.QueryTables.Add("URL;" & weburl, Destination:=Range("A1")) 把我要的URL餵進去
        .WebFormatting = xlWebFormattingNone
        .WebTables = "8" <---這邊改成第8個table
        .Refresh 0
        .Delete
作者: BarryHuang621a    時間: 2014-7-23 13:11     標題: Excel VBA 抓HTML 中的某一個Table

本帖最後由 GBKEE 於 2014-8-1 19:34 編輯

請各位大大給我一個sample code我是想要取得下面的著網站的下面的大Table
看了好久還是弄不好呀

http://www.goodinfo.tw/stockinfo/StockSorter.asp?

或是給我一個範例是去抓某一個網頁裡面的table我在自己試試看怎樣改謝謝
作者: ML089    時間: 2014-7-23 22:36

回復 1# BarryHuang621a


    建議移至 EXCEL程式區 詢問
作者: GBKEE    時間: 2014-8-6 09:27

回復 1# BarryHuang621a
你提供智慧選股工具的網址,在我的  XP, IE8  環境下執行很慢,有時會掛掉

請試試別的網址
  1. Option Explicit
  2. Sub Ex()
  3.     Dim D  As Object, i As Integer, URL As String
  4.     URL = "http://forum.twbts.com/thread-12273-1-2.html"
  5.     'URL = "http://www.goodinfo.tw/stockinfo/StockSorter.asp?"
  6.     With CreateObject("InternetExplorer.Application")
  7.         .Navigate URL
  8.         .Visible = True
  9.          Do While .ReadyState <> 4 Or .Busy
  10.             DoEvents
  11.         Loop
  12.       
  13.         Set D = .document.getElementsByTagName("table")
  14.         ActiveSheet.Cells.Clear
  15.         For i = 0 To D.Length - 1
  16.             Ep i, D(i).outerHTML
  17.         Next
  18.         .Quit
  19.     End With
  20. End Sub
  21. Private Sub Ep(i As Integer, S As String)
  22.     Dim R
  23.     With CreateObject("InternetExplorer.Application")
  24.         .Navigate "about:Tabs"
  25.         .Visible = True
  26.         .document.body.innerhtml = S
  27.         .ExecWB 17, 2       '  Select All
  28.         .ExecWB 12, 2       '  Copy selection
  29.         With ActiveSheet
  30.             R = IIf(.UsedRange.Rows.Count = 1, 1, .UsedRange.Rows.Count + 2)
  31.             .Cells(R, 1) = "第 " & i & " 個 Table"
  32.             .Cells(R, 1).EntireRow.Interior.Color = vbYellow
  33.             .UsedRange.Cells(R + 1, 1).Select
  34.             .PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False, NoHTMLFormatting:=True
  35.         End With
  36.         .Quit
  37.     End With
  38. End Sub
複製代碼

作者: BarryHuang621a    時間: 2014-8-10 20:54     標題: Excel VBA 讀取網業存檔

本帖最後由 GBKEE 於 2014-8-11 05:31 編輯

請問各位大大:

我想要用VBA取得一個網頁然後把網頁的HTML檔案存下來請問要怎樣弄哩?
作者: GBKEE    時間: 2014-8-11 06:32

本帖最後由 GBKEE 於 2014-8-11 08:34 編輯

回復 8# BarryHuang621a
  1. Excel 外部資料
  2. VBA 抓取網頁內的某一個Table
  3. Excel VBA 抓HTML 中的某一個Table
複製代碼
你發了這些有相關的問題,請不需一直的發新主題
幫你整理一下,關於主題中的回覆,是否你要表達明白與否,不然回覆者會覺的是剃頭擔子一頭熱.


Excel VBA 讀取網業存檔
試試看是這樣嗎?
  1. Option Explicit
  2. Private Sub Ex()
  3.     Dim xml As Object     '用來取得網頁資料
  4.     Dim stream            'As ADODB.stream   '用來儲存二進位檔案
  5.     Dim URL As String     '目的網址
  6.     Dim Title As String
  7.     Set xml = CreateObject("Microsoft.XMLHTTP")
  8.     Set stream = CreateObject("ADODB.stream")
  9.     URL = "https://tw.stock.yahoo.com/q/q?s=2303"
  10.     xml.Open "POST", URL, 0
  11.     xml.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
  12.     xml.send
  13.     Title = Split(xml.responseText, "<title>")(1)
  14.     Title = Split(Title, "</title>")(0) & ".HTM"   '指定網頁檔案名稱
  15.     Title = "D:\" & Title                          '網頁存檔位置
  16.     With stream
  17.         .Open
  18.         .Type = 1
  19.         .write xml.ResponseBody
  20.         If Dir(Title) <> "" Then Kill Title
  21.         .SaveToFile Title
  22.         .Close
  23.     End With
  24.     MsgBox "存檔於 " & Title
  25. End Sub
複製代碼

作者: BarryHuang621a    時間: 2014-8-12 22:11

感謝您的回覆,因為之前一直沒有得到方向所以才一直發帖抱歉壓~~
您的範例我剛剛是過是可以的感謝感謝
作者: vavashop    時間: 2016-6-6 16:48

我還是看不是很懂@
ㄟ害




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)