返回列表 上一主題 發帖

[發問] VBA自動抓取finance.yahoo

本帖最後由 f3202 於 2018-6-17 15:43 編輯

回復 8# iamaraymond


a99之後股名下載不到
謝謝

TOP

回復 2# f3202


   Very  Nice code!  Thank you very much!

TOP

请教这个指标可以用vba提取吗?

这里真是高手云集,以前一些以为没法用VBA提取的资料原来是可以的!那么请教下面这个网站的RSI数据可以用vba自动提取吗? 谢谢!

http://www.aastocks.com/tc/stock/detailchart.aspx?symbol=110000#GTop

TOP

回復 9# f3202

這應該可以使用您在另外一個帖子回的
http://forum.twbts.com/redirect. ... 3&fromuid=30076
xmlhttp+htmlfile來抓到
Excel VBA網頁資料收集教學:
http://forum.twbts.com/thread-20848-1-1.html

TOP

回復 10# iamaraymond

9樓的圖是那個程式下載加變碼的
謝謝

TOP

回復 11# f3202

試試看
  1. Sub test()

  2. Dim t: t = Timer

  3. Cells.Clear

  4. Dim myXML As Object
  5. Set myXML = CreateObject("Microsoft.XMLHTTP")

  6. Dim myHTML As Object
  7. Set myHTML = CreateObject("HTMLFile")

  8. With myXML
  9.     .Open "GET", "https://djinfo.cathaysec.com.tw/z/ze/zef/zef.djhtm", False
  10.     .send
  11.    
  12.     myHTML.body.innerHTML = convertraw(.responseBody)
  13.     Set myTrs = myHTML.getElementsByTagName("table")(2).getElementsByTagName("tbody")(0).getElementsByTagName("tr")
  14.     ReDim myArr(1 To myTrs.Length + 1, 1 To 4)
  15.     i = 1
  16.     For Each myTr In myTrs
  17.         Set myTds = myTr.getElementsByTagName("td")
  18.         j = 1
  19.         For Each myTd In myTds
  20.             myArr(i, j) = myTd.innerText
  21.             If myTd.innerText = "" Then
  22.                 myArr(i, j) = Right(Split(Split(Split(myTd.innerHTML, "GenLink2stk(")(1), "')")(0), "'")(1), 4) & Split(Split(Split(myTd.innerHTML, "GenLink2stk(")(1), "')")(0), "'")(3)
  23.             End If
  24.             j = j + 1
  25.         Next
  26.         i = i + 1
  27.     Next
  28.    
  29. End With
  30. Range("A1").Resize(UBound(myArr, 1), 4).Value = myArr
  31. Range("A1").WrapText = False
  32. Set myXML = Nothing
  33. Application.StatusBar = "抓取完畢,共花費" & Format(Timer - t, "0.00秒")

  34. End Sub
  35. Function convertraw(rawdata)

  36. Dim rawstr
  37. Set rawstr = CreateObject("adodb.stream")
  38. With rawstr
  39. .Type = 1
  40. .Mode = 3
  41. .Open
  42. .Write rawdata
  43. .Position = 0
  44. .Type = 2
  45. '繁體通常轉成big5就可以了,簡體通常是gb2312
  46. .Charset = "big5"
  47. convertraw = .ReadText
  48. .Close
  49. End With
  50. Set rawstr = Nothing

  51. End Function
複製代碼
Excel VBA網頁資料收集教學:
http://forum.twbts.com/thread-20848-1-1.html

TOP

回復 12# iamaraymond

謝謝版大
第一個測試成功
第二個我研究看看
若有問題再請教版大
佳節愉快

TOP

回復 13# f3202

OK,你可以先研究一下程式碼
看如何改成抓第二個網址的資料
這樣比較容易進步
若有問題都可以問喔~
Excel VBA網頁資料收集教學:
http://forum.twbts.com/thread-20848-1-1.html

TOP

        靜思自在 : 【是否發揮了良能?】人間壽命因為短暫,才更顯得珍貴。難得來一趟人間,應問是否為人間發揮了自己的良能,而不要一味求長壽。
返回列表 上一主題