[問題] HttpWebRequest下載股票資料失敗

看板C_Sharp (C#)作者 (GN)時間5年前 (2019/10/06 20:41), 編輯推噓1(103)
留言4則, 2人參與, 5年前最新討論串1/1
本人不才想下載股市資料,用瀏覽器都可開啟,但只要用HttpWebRequest就會有 "基礎連接已關閉: 傳送時發生未預期的錯誤。"的問題。 原本想說是request header沒填造成的,但按照chrome dev tool所觀察到的 header值填也是一樣... HttpWebRequest request = (HttpWebRequest)WebRequest.Create(" https://www.twse.com.tw/exchangeReport/MI_INDEX?response=html&date=20191003 &type=ALL"); request.ContentType = "application/x-www-form-urlencoded"; request.Accept = "text/html, application/xhtml+xml, application/xml; q=0.9, */*; q=0.8"; request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362"; request.Method = "GET"; request.Referer = "no-referrer-when-downgrade"; request.CookieContainer = new CookieContainer(); request.CookieContainer.Add(new Uri("https://www.twse.com.tw/"), new Cookie("_ga", "GA1.3.1661386241.1570275885")); request.CookieContainer.Add(new Uri("https://www.twse.com.tw/"), new Cookie("_gid", "GA1.3.1577552003.1570275885")); request.Headers.Add("Accept-Encoding", "gzip, deflate, br"); request.Headers.Add("Accept-Language", "zh-TW"); request.Headers.Add("Cache-Control", "max-age=0"); request.Headers.Add("Sec-Fetch-Mode", "navigate"); request.Headers.Add("Sec-Fetch-Site", "none"); request.Headers.Add("Sec-Fetch-User", "?1"); request.Headers.Add("Upgrade-Insecure-Requests", "1"); using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.171.177.58 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1570365680.A.7C9.html

10/06 20:48, 5年前 , 1F
網站有防止攻擊,不能連續取資料,要設定每捉一筆停頓幾秒
10/06 20:48, 1F

10/06 20:48, 5年前 , 2F
,如果只是要大盤資料,去yahoo財經網或透過api去下載
10/06 20:48, 2F

10/20 01:10, 5年前 , 3F
應該是TLS版本問題,請參考https://blog.darkthread.net
10/20 01:10, 3F

10/20 01:10, 5年前 , 4F
/blog/webclient-and-tls12/
10/20 01:10, 4F
文章代碼(AID): #1TcU3mV9 (C_Sharp)
文章代碼(AID): #1TcU3mV9 (C_Sharp)