[問題] 期交所爬蟲POST回傳問題

看板Python作者 (木柵魯蛇)時間6年前 (2017/12/16 06:32), 6年前編輯推噓1(101)
留言2則, 1人參與, 6年前最新討論串1/1
大家好 我在嘗試從期交所下載台指期歷史資料的時候 (http://www.taifex.com.tw/chinese/3/3_1_2.asp) 首先從這個頁面輸入資料並按下下載 https://imgur.com/PncrHlB
通過瀏覽器觀察送出表單後的header跟form data內容 https://imgur.com/Q4lDLc1
https://imgur.com/YdFZKdK
接著使用Python Requests測試 https://imgur.com/tlSUmW5
得到的執行結果如下 https://imgur.com/opJc2kk
跟瀏覽器的Response Header相比沒有得到回傳的Location路徑 也就無法接著使用GET方法下載回傳的資料 試過把post的params註解掉 執行的結果是一樣的 顯然我傳送的值是有問題的 希望有相關經驗的大大可以指點迷津 m(_ _)M -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.122.86 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1513377124.A.8E2.html

12/16 10:38, 6年前 , 1F
少了一些header吧 用fiddler抓你python送出的request
12/16 10:38, 1F

12/16 10:38, 6年前 , 2F
再跟你手動request的封包比較看看
12/16 10:38, 2F
解決了! 原因在這個POST請求完成之後網站會重新導向 (Requests模組POST請求預設會直接Redirect) 需要的Response Header藏在 r.history[0].headers 裡面 (重新導向了一次) ※ 編輯: walker088 (114.34.122.86), 12/16/2017 11:06:16
文章代碼(AID): #1QD4raZY (Python)