返回列表 上一主題 發帖

[發問] [EXCEL VBA] 這網頁怎麼抓呢?

回復 3# Hunt01
onclick 後設定了一堆值,然後呼叫 ajax1
你要分析就要再去找網頁中的這個 ajax1 function的內容
它裡面會再向另一個網頁POST請求,post 參數來自剛剛設定那些值。
所以你要從
"document.fm_t05sr01_1.SEQ_NO.value='1';document.fm_t05sr01_1.SPOKE_TIME.value='114100';document.fm_t05sr01_1.SPOKE_DATE.value='20160105';document.fm_t05sr01_1.COMPANY_NAME.value='?E??';document.fm_t05sr01_1.COMPANY_ID.value='2317';document.fm_t05sr01_1.skey.value='2317201601051';document.fm_t05sr01_1.hhc_co_name.value='?E??';ajax1(this.form,'table01');"

這字串中提取出你要的參數,再用 xmlhttp 向另一個網頁POST請求,
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

本帖最後由 stillfish00 於 2016-1-12 16:05 編輯

回復 5# Hunt01
by xmlhttp
  1. Sub Test()
  2.     Dim oXmlhttp As Object: Set oXmlhttp = CreateObject("msxml2.xmlhttp")
  3.     Dim oRegexp As Object: Set oRegexp = CreateObject("vbscript.regexp")
  4.     Dim oHtmldoc As Object: Set oHtmldoc = CreateObject("htmlfile")
  5.     Dim oClip As Object: Set oClip = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") 'or DataObject
  6.    
  7.     With oXmlhttp
  8.         .Open "GET", "http://mops.twse.com.tw/mops/web/t05sr01_1", False
  9.         .Send
  10.         oHtmldoc.write .responseText
  11.     End With
  12.    
  13.     Dim oTable As Object, oRow As Object, sParse As String, sPost As String
  14.     Set oTable = oHtmldoc.getelementbyid("table01").getelementsbytagname("form")(1).getelementsbytagname("table")(0)
  15.    
  16.     sParse = oTable.Rows(1).Cells(5).innerhtml '只取第一行詳細資料
  17.     With oRegexp
  18.         .Pattern = ".*?SEQ_NO\.value='(.*?)'" & _
  19.                    ".*?SPOKE_TIME\.value='(.*?)'" & _
  20.                    ".*?SPOKE_DATE\.value='(.*?)'" & _
  21.                    ".*?COMPANY_ID\.value='(.*?)'" & _
  22.                    ".*?skey\.value='(.*?)'.*"
  23.         sPost = .Replace(sParse, "encodeURIComponent=1&TYPEK=all&step=1&skey=$5&COMPANY_ID=$4&SPOKE_DATE=$3&SPOKE_TIME=$2&SEQ_NO=$1")
  24.     End With
  25.    
  26.     With oXmlhttp
  27.         .Open "POST", "http://mops.twse.com.tw/mops/web/ajax_t05sr01_1", False
  28.         .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
  29.         .SetRequestHeader "Content-Length", Len(sPost)
  30.         .Send (sPost)
  31.         oHtmldoc.Close    'Set oHtmldoc = CreateObject("htmlfile")
  32.         oHtmldoc.write .responseText
  33.     End With
  34.     With oClip
  35.         .SetText oHtmldoc.body.innerhtml
  36.         .PutInClipboard
  37.     End With
  38.     Sheets.Add().PasteSpecial NoHTMLFormatting:=True
  39. End Sub
複製代碼
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

        靜思自在 : 犯錯出懺悔心,才能清淨無煩惱。
返回列表 上一主題