Board logo

標題: [發問] 如何找出Post查詢方法中各項 PostText 屬性!! [打印本頁]

作者: 活力充沛    時間: 2012-10-21 10:18     標題: 如何找出Post查詢方法中各項 PostText 屬性!!

我想從證交所的"三大法人買賣超日報"擷取資料,如以下網址:

http://www.twse.com.tw/ch/trading/fund/T86/T86.php

希望是能夠由EXCEL表格內輸入如同以上網址中輸入的引數:"資料日期"與"分類項目"來更新data

然而因為此web查詢方式是以POST方法,而非GET,爬文看以前前輩的示範,似乎要檢視網頁原始碼找出相對引數(PostText ),如以下示範:

http://gb.twbts.com/index.php?topic=11774.8

然而此例子的 PostText = "ajax=true&yy=" & yy & "&mm=" & mm & "&input_stock_code=" & stock 是怎麼知道的??

回歸我目前想查詢的資料連結:"三大法人買賣超日報" http://www.twse.com.tw/ch/trading/fund/T86/T86.php

我又該如何建構我的程式嗎??

煩請版上的高手大大們指教^^ 謝謝!!
作者: stillfish00    時間: 2012-10-21 11:52

回復 1# 活力充沛
我是用chrome直接看原始碼找的
[attach]12841[/attach]

日期參數是  input_date , 分類項目參數是 select2
你可以試看看query網址用像這樣的格式
http://www.twse.com.tw/ch/trading/fund/T86/T86.php&input_date=101/10/19&select2=13

分類項目和對應的值如下 , 可以另建一表提供下拉選單
[attach]12842[/attach]
作者: GBKEE    時間: 2012-10-21 11:54

回復 1# 活力充沛
新開活頁簿 插入一表單 : 加入 三控制項 WebBrowser1 , CommandButton1 , CommandButton2

執行表單: 1) WebBrowser1中: 選擇 日期 ,分類項目 ,按下查詢
                  2)按下表單的CommandButton1

表單的程式碼
  1. Option Explicit
  2. Dim Sh As Worksheet, IE As Object
  3. Private Sub UserForm_Initialize()
  4.     Set Sh = ActiveSheet   '指定工作表: 寫入資料
  5.     With WebBrowser1
  6.         .Navigate "http://www.twse.com.tw/ch/trading/fund/T86/T86.php"  '指定網址
  7.         Do While .Busy = True
  8.         DoEvents
  9.         Loop
  10.     End With
  11.     Set IE = WebBrowser1.Document
  12. End Sub
  13. Private Sub CommandButton1_Click()   '寫入資料
  14.     Dim i, k, j
  15.     Sh.UsedRange.Clear
  16.     On Error Resume Next
  17.     For i = 0 To IE.getElementsByTagName("table")(8).Rows.Length - 1
  18.         k = k + 1
  19.         For j = 0 To 13
  20.             Sh.Cells(k, j + 1) = IE.getElementsByTagName("table")(8).Rows(i).Cells(j).innerText
  21.         Next
  22.     Next
  23.     Sh.Columns.AutoFit
  24.     Sh.Range("A1").ColumnWidth = 15
  25. End Sub
  26. Private Sub CommandButton2_Click()  '結束程式
  27.     Unload Me
  28. End Sub
複製代碼

作者: stillfish00    時間: 2012-10-21 12:19

回復  活力充沛
日期參數是  input_date , 分類項目參數是 select2
你可以試看看query網址用像這樣的格式
http://www.twse.com.tw/ch/trading/fund/T86/T86.php&input_date=101/10/19&select2=13
...
stillfish00 發表於 2012-10-21 11:52


抱歉 說錯了 , 不是query網址 , 應該是postText
像這樣去改變參數
    Dim selectDate As String, selectType As String
    selectDate = "101/10/19"
    selectType = "13"

    With QueryTables(1)
        .Connection = "URL;http://www.twse.com.tw/ch/trading/fund/T86/T86.php"
        .PreserveFormatting = False
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebDisableDateRecognition = True
        .WebTables = "9"
        .PostText = "input_date=" & selectDate & "&select2=" & selectType
        .Refresh False
    End With
作者: 活力充沛    時間: 2012-10-22 06:25

找出postText,去改變參數的方式對我來說比較直接也較能理解~

謝謝 GBKEE & stillfish00 兩位高手^^
作者: 活力充沛    時間: 2012-10-22 06:32

再請問一下,如果是以 stillfish00 大的方法來說,以下網址的選擇項目還有"依買賣超股數排列"與"依證券代號排列"

http://www.twse.com.tw/ch/trading/fund/T86/T86.php

如何將抓到的資料更改為"依證券代號排列"?
作者: stillfish00    時間: 2012-10-22 08:02

回復 6# 活力充沛
sorting=by_stkno
作者: 活力充沛    時間: 2012-11-4 06:21

嗯嗯!! 了解^^

謝謝~
作者: pupai    時間: 2014-6-20 09:23

回復 3# GBKEE


謝謝G版主的導引   
目前程度還是先用
"找出postText,去改變參數的方式比較容易理解"~
謝謝!!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)