作者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://webptt.com/cn.aspx?n=bbs/Python/M.1513377124.A.8E2.html
1F:推 vi000246: 少了一些header吧 用fiddler抓你python送出的request 12/16 10:38
2F:→ 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