返回列表 上一主題 發帖

[發問] 查找網站資料

本帖最後由 joey0415 於 2014-8-6 21:15 編輯
回復  ciboybj
試試看
GBKEE 發表於 2014-8-5 06:27



寫的真好!請問超版

Set D = .document.all(6).all(0).contentWindow.frames.document.getElementsByTagName("INPUT")

這句話的意思是有六個INPUT中的第一個子視窗將它設為物件嗎?

如果是的話,那下面這句
Set D = .document.LastChild.LastChild.all(1).contentWindow.frames.document.getElementsByTagName("table")
將右邊的TABLE的設為物件嗎?

左邊的叫.all(6).all(0).contentWindow.frames

右邊的叫.LastChild.LastChild.all(1).contentWindow.frames

為什麼右邊的不叫Set XXX = .document.all(1).all(0).contentWindow.frames.document.getElementsByTagName("table")

而且說上面的不是物件呢?是沒有還是寫錯呢?

請版主解說一下好嗎?還是有哪一個網頁可以參考!謝謝

TOP

回復 11# GBKEE

謝謝超版,研究網路抓取有一段時間了,這個網站我真的抓不到,所以看到超版的才知道有這麼回事

如下圖,六是這指個嗎?


我只看到網頁中有這些元素呀!


對於.document.all(6).all(0).

還真有些模糊

希望超版能多指點

謝謝

如果找到類似的網頁,再請超版來看看

TOP

回復 11# GBKEE

請問超版,若抓用上市日報表的網站,左邊也是如此,table在右邊,修改超版的程式語法

Set D = .document.all(5).all(0).contentWindow.frames.document.getElementsByTagName("INPUT")
改成5才可以用

右邊的table若用下面的
Set D = .document.all(5).all(1).contentWindow.frames.document.getElementsByTagName("table")
則撈不到資料呢!

以下是日報表的程代碼
  1. Sub 日報表()
  2.     Dim D  As Object, e As Object, URL As String

  3.     URL = "http://bsr.twse.com.tw/bshtm/"
  4. '    URL = "http://tmsearch.tipo.gov.tw/TIPO_DR/GoodsIPOContent.jsp"
  5.     With CreateObject("InternetExplorer.Application")
  6.         .Navigate URL
  7.         .Visible = True
  8.          Do While .ReadyState <> 4 Or .Busy
  9.             DoEvents
  10.         Loop
  11.          Set D = .document
  12.          Stop
  13.         Set D = .document.all(5).all(0).contentWindow.frames.document.getElementsByTagName("INPUT")
  14.         
  15. '        For Each ss In D
  16. '            MsgBox ss.Value
  17. '        Next
  18. '
  19.         Stop
  20.         D("txtTASKNO").Value = "1101"
  21.         For Each e In D
  22.             If e.Value = "查詢" Then e.Click: Exit For
  23.         Next
  24.         Do While .ReadyState <> 4 Or .Busy
  25.             DoEvents
  26.         Loop
  27.         Set D = .document.all(5).all(1).contentWindow.frames.document.getElementsByTagName("table")
  28. '        Stop
  29. '        For Each ss In D
  30. '            MsgBox ss.innerHTML
  31. '        Next
  32.         
  33.         Stop
  34.         Ep D(0).outerHTML
  35.         .Quit
  36.     End With
  37. End Sub
複製代碼
====================================
剛剛試了原版主提出的網頁也是不知道超版說的是哪一個呢?

如圖


TOP

回復 14# GBKEE

這張圖值五顆星啦!

改天我再來試試日報表改版主看看

請問版主找資料也是用這種方式呢?還是有別的更好的方式

vba內鍵的資料字型不能放大

謝謝

TOP

回復 16# GBKEE

我指的是「區域變數視窗」

請問版主還有更好的查找方法嗎?

TOP

回復 18# GBKEE

謝謝超版解決這個問題!雖然我不是用這個方法抓的!不過還是要感謝

再請問超版

.Document.Focus

為什麼要這句呢?有什麼差別?

.all(5)的5我是一個一個試出來的

左邊的是frame是all(0)
右邊的是frame為什麼也是all(0)而不是all(1)
超版也是一個一個試出來的嗎?

還是有別的語法可以list出來呢?

感謝超版又學到東西

TOP

回復 23# GBKEE

讚!謝謝版主用這麼功整的語法,小弟學習啦!

TOP

        靜思自在 : 人事的艱難與琢磨,就是一種考驗。
返回列表 上一主題