Board logo

標題: [發問] 請問如何修改才能載入表格 謝謝 [打印本頁]

作者: wufonna    時間: 2019-6-10 13:26     標題: 請問如何修改才能載入表格 謝謝

Option Explicit

Dim ie As Object   '模組最頂端 Dim 供這模組的程序使用的變數
Sub AllFile()
    Dim i As Integer, v, Y As Integer, S As String
    Set ie = CreateObject("internetexplorer.application")   '使用此方式可以免除 "設定引用項目"

           GetDividend (2330)



End Sub


Private Sub GetDividend(ByVal ss As String)     '取股利網頁
  Dim strText As String
  Dim i As Integer, j As Integer, xTable As Object
  With CreateObject("msxml2.xmlhttp")
    .Open "GET", "http://pscnetinvest.moneydj.com.tw/z/zc/zcq/zcqa/zcqa_" & ss & ".djhtm", False
    .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    .send
    strText = BinToStr(.responseBody, "BIG5") '要注意網頁編碼
  End With
  With CreateObject("htmlfile")
        .Write strText
        Set xTable = .all.tags("table")(2)
        With Sheet2
            .Cells.Clear
            For i = 0 To xTable.Rows.Length - 1
                For j = 0 To xTable.Rows(i).Cells.Length - 1
                    .Cells(i + 1, j + 1) = xTable.Rows(i).Cells(j).innertext
                Next
            Next
        End With
  End With
End Sub




Function BinToStr(arrBin, strChrs)
    With CreateObject("ADODB.Stream")
        .Type = 2
        .Open
        .Writetext arrBin
        .Position = 0
        .Charset = strChrs
        BinToStr = .ReadText
        .Close
    End With
End Function
作者: wufonna    時間: 2019-6-11 16:39

table 包裹著 form ,可能是故意防止人複製的,網頁才這麼寫,請教 大大如何修改,謝謝
作者: n7822123    時間: 2019-6-14 03:02

本帖最後由 n7822123 於 2019-6-14 03:16 編輯

回復 2# wufonna


我也不知道怎麼破解~~~~希望有高手能解答

如果你只是想抓資料的話,可以換個網站喔,我覺得這個網站還不錯

https://histock.tw

這是附件,我抓那個網站資料,做出來的

[attach]30854[/attach]

使用方法:第一欄輸入股票代號即可,按"抓取資料"即可
使用期限:直到嗨投資改網頁格式
免責聲明:裡面很多我的主觀判斷,套牢虧錢一概不負責
作者: wufonna    時間: 2019-6-14 15:36

本帖最後由 wufonna 於 2019-6-14 15:38 編輯

[attach]30861[/attach][attach]30861[/attach][attach]30861[/attach]回復 3# n7822123
謝謝 n7822123 大 的資料程式 我參考看看,https://histock.tw/tw網頁內沒有損益表(年表)網頁  資產負債表(年表)網頁 ,我是用 GBKEE 版大的程式改的,可能網頁的內容多了 form,而程式捉不到損益表(年表)網頁  資產負債表(年表)網頁 的資料,麻煩 大大 看看
作者: n7822123    時間: 2019-6-15 02:59

本帖最後由 n7822123 於 2019-6-15 03:04 編輯

回復 4# wufonna


https://histock.tw/tw網頁內沒有損益表(年表)網頁  資產負債表(年表)網頁 ???

你確定嗎!? 也許你沒有逛透~~~季表做基本運算就可以得到年表了

可以抓資料的地方太多了,如果你要堅持那個網站............

那我也沒辦法幫到你了,看有沒有高手可以幫你

[attach]30868[/attach]
[attach]30869[/attach]
[attach]30870[/attach]
作者: f3202    時間: 2019-6-15 07:37

Sub get_stock()
Dim Url, HTMLsourcecode, GetXml
Set HTMLsourcecode = CreateObject("htmlfile")
Set GetXml = CreateObject("msxml2.xmlhttp")
Url = "http://pscnetinvest.moneydj.com.tw/z/zc/zcq/zcqa/zcqa_2330.djhtm"
With GetXml
.Open "GET", Url, False
.Send

HTMLsourcecode.body.innerhtml = .Responsetext
Set Table = HTMLsourcecode.all.tags("table")(2).Rows
For i = 0 To Table.Length - 1
For j = 0 To Table(i).Cells.Length - 1
ActiveSheet.Cells(i + 1, j + 1) = Table(i).Cells(j).innertext
Next j
Next i
End With
Set HTMLsourcecode = Nothing '釋放記憶體
Set GetXml = Nothing
End Sub '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者: wufonna    時間: 2019-6-15 09:11

回復 5# n7822123
我主要是取網頁內的 稅後盈餘 / 股東權益 ,做 股東權益報酬率  (ROE) = 稅後盈餘 / 股東權益,我在做看看,謝謝 大大

年合併損益表 http://pscnetinvest.moneydj.com.tw/z/zc/zcq/zcqa/zcqa_1723.djhtm
年合併資產負債表 http://pscnetinvest.moneydj.com.tw/z/zc/zcp/zcpb/zcpb_1723.djhtm
作者: wufonna    時間: 2019-6-15 09:40

回復 6# f3202
非常感謝 大大,程式完全可執行了
作者: wufonna    時間: 2019-6-15 11:11

回復 8# wufonna
改過了,請 大大 看看,謝謝
作者: n7822123    時間: 2019-6-18 00:50

回復 6# f3202


學習了~~~~看來關鍵在於

htmlfile物件.body.innerhtml = .Responsetext

只是什麼時候用 .write 什麼時候用 .body.innerhtml

不知道有沒有辦法分辨,還是就二選一猜看看 {:3_59:}
作者: f3202    時間: 2019-6-18 07:55

參考
https://www.mobile01.com/topicdetail.php?f=511&t=4737630&p=1
作者: wufonna    時間: 2019-6-18 09:33

回復 10# n7822123
原程式可能網頁改版而不能捉到 table 的資料,我對於語法屬性還不熟悉,努力學習中😀
網頁中 <form>....</form>我想是影響下載的
作者: wufonna    時間: 2019-6-18 09:34

回復 11# f3202

謝謝 大大 提供的資訊,研習中😀
作者: wufonna    時間: 2022-1-5 01:17

http://forum.twbts.com/thread-23550-1-1.html




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