作者walker088 (木柵魯蛇)
看板Python
標題[問題] 期交所爬蟲POST回傳問題
時間Sat Dec 16 06:32:02 2017
大家好
我在嘗試從期交所下載台指期歷史資料的時候
(
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
推 vi000246: 少了一些header吧 用fiddler抓你python送出的request 12/16 10:38
→ vi000246: 再跟你手動request的封包比較看看 12/16 10:38
解決了! 原因在這個POST請求完成之後網站會重新導向
(Requests模組POST請求預設會直接Redirect)
需要的Response Header藏在 r.history[0].headers 裡面
(重新導向了一次)
※ 編輯: walker088 (114.34.122.86), 12/16/2017 11:06:16