運用了一些假期熟悉下載Good Info的網頁,大致上都可以取得實際網址,也成功的下載檔案。謝謝Snare兄指導。
但是最近想要下載這個檔案,照著之前Snare 190樓的兩種方式,似乎都找不到那個實際的網址,當然檔案也就無法順利下載了。包含了F12/Network/XHR看不到實際網址,以F5 refersh似乎也無法發現。 另外,使用了data:image/png:base, serach 00652 富邦印度,也是看不到相關的實際網址資訊。不知道GoodInfo是不是有改版網頁,以至於使用這樣的方式已經看不到了。謝謝Snare兄。
參考連結
https://goodinfo.tw/StockInfo/StockList.asp?RPT_TIME=&MARKET_CAT=智慧選股&INDUSTRY_CAT=外資連買+–+日%40%40外資連續買超%40%40外資連續買超+–+日&SHEET=法人買賣&SHEET2=法人連買連賣統計%28日%29
lpviva wrote:
使用了data:image/png:base, serach 00652 富邦印度,也是看不到相關的實際網址資訊
(恕刪)
您給的網址,裡面沒有00652
lpviva wrote:
似乎都找不到那個實際的網址,當然檔案也就無法順利下載了。包含了F12/Network/XHR看不到實際網址
(恕刪)
因為您給的網址就是實際網址
lpviva wrote:
不知道GoodInfo是不是有改版網頁
(恕刪)
沒有改版,下載方式同721樓
Sub get_goodinfo()
Dim HTMLsourcecode, Table, Clipboard As Object, Url As String, URL_a As String
Set HTMLsourcecode = CreateObject("htmlfile")
Set Clipboard = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
Url = "https://goodinfo.tw/StockInfo/StockList.asp?RPT_TIME=&MARKET_CAT=智慧選股&INDUSTRY_CAT=外資連買 – 日@@外資連續買超@@外資連續買超 – 日&SHEET=法人買賣&SHEET2=法人連買連賣統計(日)"
With CreateObject("WinHttp.WinHttpRequest.5.1")
.Open "GET", Url, False
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
.send
HTMLsourcecode.body.innerhtml = convertraw(.ResponseBody)
End With
'Set Table = HTMLsourcecode.getElementById("divStockList") 'txtStockListData 剪貼薄方式(2選1)
'Set Table = HTMLsourcecode.getElementById("tblStockList").Rows '逐格寫入方式(2選1)
'逐格寫入前,股票代號那格,需先設文字格式cells(列,欄).NumberFormatLocal = "@"
'或是在數字前面加上'(上標點)
'
'
'剪貼薄 或 逐格寫入,整理用程式碼,放這裡(請找其它範例代入)
'
'
Set HTMLsourcecode = Nothing
Set Table = Nothing
Set Clipboard = Nothing
End Sub
Function convertraw(rawdata)
Dim rawstr
Set rawstr = CreateObject("adodb.stream")
With rawstr
.Type = 1
.Mode = 3
.Open
.Write rawdata
.Position = 0
.Type = 2
.Charset = "utf-8"
convertraw = .ReadText
.Close
End With
Set rawstr = Nothing
End Function
名目網址:(點選網頁得到的)
https://goodinfo.tw/StockInfo/StockList.asp?RPT_TIME=&MARKET_CAT=熱門排行&INDUSTRY_CAT=投信買超佔發行張數+–+半年%40%40投信買超佔發行張數%40%40投信+–+半年&SHEET=法人買賣統計_投信&SHEET2=買賣超佔發行張數
實際網址:(經由按選F12按照190樓程序查到的)
https://goodinfo.tw/StockInfo/StockList.asp?SEARCH_WORD=&SHEET=法人買賣統計_投信&SHEET2=買賣超佔發行張數&MARKET_CAT=熱門排行&INDUSTRY_CAT=投信買超佔發行張數+–+半年@@投信買超佔發行張數@@投信+–+半年&STOCK_CODE=&RPT_TIME=最新資料&STEP=DATA&RANK=
之前提供的這個網址也是我點選網頁所得,若照之前的作法,感覺上似乎是名目網址,下載網頁資料也出現錯誤訊息。若這是實際網址的話,還想請問名目網址要如何求得?
https://goodinfo.tw/StockInfo/StockList.asp?RPT_TIME=&MARKET_CAT=智慧選股&INDUSTRY_CAT=外資連買+–+日%40%40外資連續買超%40%40外資連續買超+–+日&SHEET=法人買賣&SHEET2=法人連買連賣統計%28日%29
還謝謝Snare萬忙之中指導。
這幾天yahoo finance的history都抓不下來…而之前都正常。
不知道問題可能是出在哪裡?
我看Url的格式應該是沒錯,但資料卻都不會更新。
或可能是Clipboard的問題?
謝謝!
Set Xmlhttp = CreateObject("WinHttp.WinHttpRequest.5.1")
With Xmlhttp
.Open "GET", "https://finance.yahoo.com/quote/VTI/history?p=VTI", False
.send
Crumbkey = Left(Split(.responseText, """CrumbStore"":{""crumb"":""")(1), 11)
For i = 2 To lastrow
FileName = ""
Stock = Sheets("US.Stock").Cells(i, 1).Value
Url = "https://query1.finance.yahoo.com/v7/finance/download/" & Stock & "?period1=" & DataToUnixTime(startday) & "&period2=" & DataToUnixTime(endday) & "&interval=1d&events=history&crumb="
.Open "POST", Url & Crumbkey, False
Debug.Print "Full Url = "; Url & Crumbkey
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.send
FileName = Split(.getresponseheader("Content-Disposition"), "filename=")(1)
With Clipboard
.SetText Xmlhttp.responseText
.PutInClipboard
End With
蔬食抗暖化,減碳救地球!
關閉廣告