Board logo

標題: [發問] QueryTable 下載證券資料問題 [打印本頁]

作者: vanguarx    時間: 2020-7-6 17:04     標題: QueryTable 下載證券資料問題

我原本都用玉山證券以QueryTable 下載相關的財務報表資料
但最近突然不能用了,出現了如下的信息。我以為是被玉山證券封鎖了,但是使用Browser 又可以進玉山證券,所以應該不封鎖IP
因此改用日盛證券。但神奇的是 同一支程式,只是連結的URL不同,但有個人的電腦是可以連到玉山證券的,但我的電腦及我找了幾個人幫忙測試(家裡與公司同事都有)都連不上玉山證券,同樣出現如下圖的資訊

想請問是否電腦要做甚麼特殊設定才可以 ?
附檔有分連玉山證券與日盛證券。code 都一樣,只是URL不一樣





[attach]32260[/attach]
作者: vanguarx    時間: 2020-7-6 17:07

補充
我的EXCEL 版本是 Excel 2010。
我後來用 Set XMLHTTP = CreateObject("Microsoft.XMLHTTP") 的方式,使用同一台電腦,可以抓到玉山證券的資料。所以應該沒有被封鎖之類的問題,只是想不透為何使用 Querytable 不行...
作者: vanguarx    時間: 2020-7-7 08:32

請問有人試過  執行玉山sheet 那個巨集,可以抓到資料的 ?
作者: n7822123    時間: 2020-7-7 23:16

本帖最後由 n7822123 於 2020-7-7 23:23 編輯

回復 3# vanguarx

玉山那個,昨天我測會卡死,剛剛測可以又抓到資料了~~

可能最近在修改東西吧~

網路爬蟲的生態就是這樣,沒有一個程式可以永久使用

網頁設計者中間插入一個新表格,後面的表格序號就會不同

或者更改介面,改原件ID、改元元件類型,甚至只是改個字串~

原本可以抓到資料的程式就變沒用摟~

回到QueryTable,以後遇到這種情況,

如果你原本是用錄製的,可以再重新錄製看看~

如果你原本是自己寫的,恩~ 那就再檢查看看哪裡不一樣了

作者: vanguarx    時間: 2020-7-8 09:07

謝謝n7822123 的開示。
我剛測試了玉山,還是不行。
另外,若我用資料-> 從web ->輸入URL  去錄製code
日盛是可以成功的,但玉山卻失敗。
我是想搞清楚,到底是對方網站動了手腳,還是我的電腦哪裡的設定不對,導致這樣。
因為同樣code, 有些人執行OK,但我執行就是不成功...

日盛http://jsjustweb.jihsun.com.tw/z/zc/zcc/zcc_2441.djhtm
玉山http://sjmain.esunsec.com.tw/z/zc/zcc/zcc_2441.djhtm
作者: joey0415    時間: 2020-7-8 09:40

謝謝n7822123 的開示。
我剛測試了玉山,還是不行。
另外,若我用資料-> 從web ->輸入URL  去錄製code
日 ...
vanguarx 發表於 2020-7-8 09:07



都可以抓,沒有問題

網站更新時會有問題、抓取過快會有問題
  1. Sub 巨集1()
  2.     Cells.Clear
  3.     sname = 1101
  4.    
  5.     Set myQT = ActiveSheet.QueryTables.Add(Connection:="URL;http://jsjustweb.jihsun.com.tw/z/zc/zcc/zcc_" & sname & ".djhtm", Destination:=Range("$A$1"))
  6.     With myQT
  7.         .WebFormatting = xlWebFormattingNone
  8.         .Refresh BackgroundQuery:=False
  9.         .Delete
  10.     End With
  11.     Set myQT = Nothing
  12. End Sub
複製代碼

作者: vanguarx    時間: 2020-7-8 14:58

我用了你的code, 只是換成玉山證券網址
結果還是沒反應。

若我的電腦不能run,也許是環境問題。只是我搞不懂,同樣的code , 我去好幾個人的電腦試過,還是都不行。

Sub 巨集1()
    Cells.Clear
    sname = 1101
   
    Set myQT = ActiveSheet.QueryTables.Add(Connection:="URL;http://sjmain.esunsec.com.tw/z/zc/zcc/zcc_" & sname & ".djhtm", Destination:=Range("$A$1"))
    With myQT
        .WebFormatting = xlWebFormattingNone
        .Refresh BackgroundQuery:=False
        .Delete
    End With
    Set myQT = Nothing
End Sub
作者: joey0415    時間: 2020-7-8 19:31

我用了你的code, 只是換成玉山證券網址
結果還是沒反應。

若我的電腦不能run,也許是環境問題。只是我搞 ...
vanguarx 發表於 2020-7-8 14:58


我測試過了,當某些時段
網站在資料更新時
找不到相關網頁
隔一段時間後就能執行
作者: vanguarx    時間: 2020-7-9 10:34

感謝幫忙。

看來真的是玉山網站的問題了。




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