返回列表 上一主題 發帖

[發問] 有關於撈股票Code問題

回復 1# afu9240
所以您要的資料是:
時間、成交、賣進、賣出、漲跌、張數、昨收、開盤、最高、最低嗎?
Excel VBA網頁資料收集教學:
http://forum.twbts.com/thread-20848-1-1.html

TOP

回復 3# afu9240
  1. Sub test()

  2. Dim myXML As Object
  3. Set myXML = CreateObject("Microsoft.XMLHTTP")

  4. Dim myHTML As Object
  5. Set myHTML = CreateObject("HTMLFile")

  6. i = 2
  7. With myXML
  8.     For Each stockNo In Range("A2:A4").Value
  9.         .Open "GET", "https://tw.stock.yahoo.com/q/q?s=" & stockNo, False
  10.         .send
  11.    
  12.         myHTML.body.innerHTML = .responseText
  13.         
  14.         Set myTable = myHTML.getElementsByTagName("table")(6)
  15.         
  16.         For j = 1 To 10
  17.             Cells(i, j + 1) = myTable.Rows(1).Cells(j).innerText
  18.         Next
  19.         
  20.         i = i + 1
  21.     Next
  22. End With

  23. Set myXML = Nothing
  24. Set myHTML = Nothing

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

TOP

回復 5# afu9240

不太懂即時的意思,可以請afu大講詳細一點嗎?
Excel VBA網頁資料收集教學:
http://forum.twbts.com/thread-20848-1-1.html

TOP

回復 9# afu9240

即時的部分,我剛剛試是OK的

您圖片的錯誤應該是因為我是取A2到A4的股票代號,但您好像只有A2有值,才導致這個錯誤,所以應該簡單改一下迴圈即可解決

01我想應該是指mobile01吧?
Excel VBA網頁資料收集教學:
http://forum.twbts.com/thread-20848-1-1.html

TOP

回復 9# afu9240

啊我知道您的意思了
因為在用這方法抓資料時,他會有一個像是"記憶"的功能(確切的專有名詞我不太清楚)
也就是說若發送的是同一個request,那他就會拿到跟上次一樣的資料(這也是為什麼當你在執行第二次、第三次程式時,他會執行的超快)
所以解決方式就是"讓他發送不一樣的request"
例如在參數多加一個timer,每次發送的時候他就會以為是不一樣的request了,但實際上這個timer並不會影響到你抓到的資料
感謝您又讓我上了寶貴的一課
  1. Sub test()

  2. Dim myXML As Object
  3. Set myXML = CreateObject("Microsoft.XMLHTTP")

  4. Dim myHTML As Object
  5. Set myHTML = CreateObject("HTMLFile")


  6. i = 2
  7. With myXML
  8.     For Each stockNo In Range("A2:A4").Value
  9.         .Open "GET", "https://tw.stock.yahoo.com/q/q?t=" & Timer & "&s=" & stockNo, False
  10.         .send
  11.    
  12.         myHTML.body.innerHTML = .responseText
  13.         
  14.         Set myTable = myHTML.getElementsByTagName("table")(6)
  15.         
  16.         For j = 1 To 10
  17.             Cells(i, j + 1) = myTable.Rows(1).Cells(j).innerText
  18.         Next
  19.         
  20.         i = i + 1
  21.     Next
  22. End With

  23. Set myXML = Nothing
  24. Set myHTML = Nothing

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

TOP

回復 9# afu9240

所以...請問最後有解決您的問題嗎?
Excel VBA網頁資料收集教學:
http://forum.twbts.com/thread-20848-1-1.html

TOP

        靜思自在 : 君子立恆志,小人恆立志。
返回列表 上一主題