返回列表 上一主題 發帖

[發問] 有大大能找到鉅亨網的隱藏網址嗎?以及網頁元素問題

[發問] 有大大能找到鉅亨網的隱藏網址嗎?以及網頁元素問題

本帖最後由 PKKO 於 2016-10-7 15:29 編輯

http://www.cnyes.com/twstock/ps_historyprice/3514.htm
網址裡面有一個開始跟結束日期
請大大們教導如何找出隱藏的網址,可以直接從網址當中控制起迄日期
這樣就可以直接用錄製巨集的方式下載(感覺這種方式比較穩定)

我目前使用網頁元素可以控制起迄日期,但碰到一個問題是
當提出查詢按鈕的時候,無法得知網頁何時跑完
導致網頁還沒跑完,程式碼已經繼續往下執行了
這樣會導致資料是(案下查詢按鈕之前的資料)
  1. Sub testDL()   '下載股票資訊
  2. Set ie = CreateObject("InternetExplorer.Application")
  3. ie.Visible = True
  4. ie.Navigate "http://www.cnyes.com/twstock/ps_historyprice/" & "3514" & ".htm"
  5. Do While ie.readyState <> 4: DoEvents: Loop
  6. st_date = "2016/01/01"
  7. With ie.Document
  8.     '開始日期
  9.     For Each E In .GetElementsByTagName("INPUT")
  10.         If E.ID = "ctl00_ContentPlaceHolder1_startText" Then
  11.             E.Value = st_date: Exit For
  12.         End If
  13.     Next
  14.     '查詢按鈕
  15.     Do While ie.readyState <> 4 Or ie.Busy: DoEvents: Loop
  16.     For Each E In .GetElementsByTagName("INPUT")
  17.         If E.ID = "ctl00_ContentPlaceHolder1_submitBut" Then
  18.             E.Click: Exit For
  19.         End If
  20.     Next
  21.     '=================================下載資料=================================
  22.     Do While ie.readyState <> 4 Or ie.Busy: DoEvents: Loop'這行程式碼無效,無法真的等待網頁執行時間
  23.     MsgBox "網頁實際上還沒完成!導致下載的資料是舊的"
  24. End With
  25. ie.Quit
  26. End Sub
複製代碼
PKKO

本帖最後由 PKKO 於 2016-10-7 19:28 編輯

回復 2# joey0415


不曉得大大說的是以下兩個網站嗎?證交所與櫃買中心
因為我需要的是一次下載n個月的資料
我有寫過自動下載,但不堪其擾...

一、必須要區分上櫃與上市
二、資料都是以月為單位,速度更慢
三、無法直接透過網址來截取資料,因為有些特別年月會第一次無法讀取,第二次執行才可以讀取
四、相同也是以網頁元素來取得資料,但遊戲規則還會時常變更

http://www.tpex.org.tw/web/stock/aftertrading/daily_trading_info/st43.php?l=zh-tw
http://www.twse.com.tw/ch/trading/exchange/STOCK_DAY_AVG/STOCK_DAY_AVGMAIN.php
PKKO

TOP

回復 2# joey0415


    目前網路下載最快的是YAHOO的資料,但YAHOO的資料一堆錯誤的
只有找到鉅亨網似乎是不錯的下載網站
PKKO

TOP

回復 6# ketrddem
ketrddem 大大,您好厲害耶,用下載的方式又快又穩,即便錯誤也不會中斷= =好多問題想向大大請教
一、與joey0415大大問題相同,下列程式碼無法運作,當多重條件的時候要如何輸入?
  1. With QT
  2. .PostText = "ctl00$ContentPlaceHolder1$startText=" & "2016/01/01"
  3. .PostText = "ctl00$ContentPlaceHolder1$endText=" & "2016/05/01"
  4. .WebTables = "2"
  5. .Refresh False
  6. .Delete
  7. End With
複製代碼
二、用下載的方式資料一定要先放在EXCEL上面嗎?可否直接輸出到陣列上面?
三、您如何找到該字串的?

為何不是輸入B欄位的ID字串而是輸入C欄位的NAME字串?網頁都是輸入NAME字串嗎?
四、只要是輸入變數都是使用.PostText 這個指令嗎?還是有何變化
五、或許小弟問題太多造成您困導,請問可以在哪邊找到關於下載的詳細相關方法呢?

以上麻煩大大了,再次提出萬分感激
PS:大大根本不是VBA新手,您應該要把簽名檔換掉了><"
PKKO

TOP

回復 7# GBKEE
超版大大您好,小弟找不到這段程式碼的資料
  1. Set xTable = .all.tags("table")(1)
複製代碼
從區域變數當中,不曉得這個.all.tags("table")在哪邊= =


小弟太嫩了,還請指教,網頁元素也是跟超版大大學習的
但這個.all.tags("table")以前完全沒看過@@
PKKO

TOP

        靜思自在 : 好事要提得起,是非要放得下,成就別人即是成就自己。
返回列表 上一主題