返回列表 上一主題 發帖

新版股市公開資訊觀測站的資料抓到EXECL?

回復 10# BigDog
網址:公開資訊觀測站-->營運概況-->財務比率分析->採IFRSs後->財務分析資料
   
  1. Option Explicit
  2. Sub 公開資訊網頁()
  3.     Dim A As Object, E As Object
  4.     With CreateObject("InternetExplorer.Application")
  5.         .Visible = True
  6.         ' .Navigate "http://mops.twse.com.tw/mops/web/t164sb04"     '網址:綜合損益表
  7.         '.Navigate "http://mops.twse.com.tw/mops/web/stapap1"       '網址:董監事持股餘額明細資
  8.          .Navigate "http://mops.twse.com.tw/mops/web/t05st22"
  9.          '網址:公開資訊觀測站-->營運概況-->財務比率分析->採IFRSs後->財務分析資料
  10.         Do While .ReadyState <> 4 Or .Busy: DoEvents: Loop
  11.          '   .document.getElementById("isnew").Value = "false"       '選擇: 歷史資料
  12.             '註解上一行程式碼為 -> 選擇: 最新資料,不會執行 If 內程式碼
  13.             If .document.getElementById("isnew").Value = "false" Then
  14.              .document.getElementById("isnew").FireEvent ("onchange")
  15.                 .document.getElementById("year").Value = "102"       '年度
  16.                 .document.getElementById("season").Value = "01"    '綜合損益表:季別
  17.                 .document.getElementById("month").Value = "08"      '董監事持股餘額明細資料:月份
  18.             End If
  19.             '********************************************************************
  20.            For Each A In .document.getelementSbyTAGNAME("INPUT")
  21.                 'If A.Name = "co_id" Then A.Value = "2317"
  22.                  If A.Name = "co_id" Then A.Value = ActiveSheet.Range("A1") '儲存格:指定代號
  23.                  If A.Value = " 搜尋 " Then A.Click                     '按下 搜尋
  24.             Next
  25.             Do While .ReadyState <> 4 Or .Busy: DoEvents: Loop
  26.             For Each E In .document.ALL.TAGS("div")
  27.                 If E.ID = "table01" Then
  28.                     .document.body.innerHTML = E.outerHTML
  29.                     Do While .ReadyState <> 4 Or .Busy: DoEvents: Loop
  30.                     .ExecWB 17, 2       '  Select All
  31.                     .ExecWB 12, 2       '  Copy selection
  32.                     With ActiveSheet
  33.                         .UsedRange.Offset(1).Clear
  34.                         .Cells(2, 1).Select
  35.                         .PasteSpecial Format:="HTML"
  36.                     End With
  37.                 End If
  38.             Next
  39.        .Quit                          '關閉 IE
  40.     End With
  41. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 11# GBKEE

超版大大問一下哦,您是如何得知網址後面的選項的?實在太強大了...
    http://mops.twse.com.tw/mops/web/t164sb04  =>後面有season 、 year 如何得知的?

例如:http://lbma.oblive.co.uk/table   
這是倫敦黃金的公告價格網站
我只會抓104年的,因為我不曉得後面要如何輸入year 的變數取得不同年度的資料
請問類似這種網頁該如何找出後面的變數輸入方式
以及這個網址的變數要如何輸入?
PKKO

TOP

回復  GBKEE

超版大大問一下哦,您是如何得知網址後面的選項的?實在太強大了...
    http://mops.twse. ...
PKKO 發表於 2015-7-16 21:18


http://lbma.oblive.co.uk/table?metal=silver&year=2008&type=monthly

http://lbma.oblive.co.uk/table?metal=gold&year=2013&type=daily

自己練習改改看

TOP

回復 13# joey0415


    joey0415大大您好,您給我細部網址之後,我就會改了
可是您的細部網址是如何得知的?

例如:http://lbma.oblive.co.uk/table    =>  從這裡開始(?metal=silver&year=2008&type=monthly)
紅色字串的地方您怎麼知道有這段網址?
我猜也猜不到阿~
還是要看網頁的檢視程式嗎?
PKKO

TOP

回復 14# PKKO
慢慢的體會
  1. Option Explicit
  2. Sub Ex_網頁元素()
  3.     Dim i As Integer, E As Object
  4.     With CreateObject("InternetExplorer.Application")
  5.         .Visible = True
  6.         .Navigate "http://mops.twse.com.tw/mops/web/t164sb04"
  7.         
  8.         Do While .Busy Or .readyState <> 4: DoEvents: Loop
  9.         Stop
  10.         '在這網址輸入相關資料,再繼續執行下面的程式
  11.          
  12.         With .Document  '網頁的文件
  13.           '*** 這段程式碼可查看這網頁的元素內容
  14.             On Error Resume Next
  15.             For Each E In .all
  16.                 i = i + 1
  17.                 Cells(i, "a") = E.tagname   '控制項標記的名稱
  18.                 Cells(i, "b") = E.ID        '控制項標記的ID (惟一的)
  19.                 Cells(i, "c") = E.Name      '控制項標記的命名
  20.                 Cells(i, "d") = E.Value     '控制項標記的值
  21.                 Cells(i, "e") = E.innertext '控制項標記的文字
  22.                 Cells(i, "f") = E.Type      '控制項標記的類型
  23.                 Cells(i, "g") = E.href      '控制項標記的網址
  24.             Next
  25.           '****************************************
  26.         End With
  27.     '    .Quit        '關閉網頁
  28.     End With
  29.     '執行後到工作表上,查看在這網址輸入相關資料的控制項的屬性
  30. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 15# GBKEE


    哇~太感謝超版大大了,我會慢慢體會的!謝謝~
PKKO

TOP

回復 14# PKKO


    IE 的 URL 框不就有了

TOP

回復  PKKO


    IE 的 URL 框不就有了
bobomi 發表於 2015-7-17 10:35


你可試試看,有些東西沒有你想得那麼簡單喔

URL一般都只有初始頁面

TOP

本帖最後由 bobomi 於 2015-7-17 14:21 編輯
你可試試看,有些東西沒有你想得那麼簡單喔

URL一般都只有初始頁面
ftc693 發表於 2015-7-17 12:00



我知道有些不行啊
但我回的是 http://lbma.oblive.co.uk/table?metal=silver&year=2008&type=monthly 這個網頁

主要是 post 網頁 (  端看對方要不要給你方便  )
不想給你直接下載的, 網址後面就不會直接放參數, 但可以找出來
還有更狠一點的
為了不讓你抓
經常改變網址參數

TOP

回復 19# bobomi

妳說的URL框指的是寫網址的地方嗎?

我一開始查到的網址只有這樣=>    http://www.lbma.org.uk/pricing-and-statistics

是joey0415大大提供後面的網址,我才知道參數

後來超版大大提供我學習得到參數的方法

因此還在學習中= =
PKKO

TOP

        靜思自在 : 口說一句好話,如口出蓮花;口說一句壞話如口吐毒蛇。
返回列表 上一主題