python 请求带有重定向的帖子失败

问题描述 投票:0回答:1

我正在尝试使用请求从 https://www.voyages-sncf.com/billet-train 获取一些火车票时间和价格。 到目前为止,我似乎哪儿也去不了。

    url = 'https://www.voyages-sncf.com/billet-train' 
    formData = {
            'ORIGIN_CITY': 'PARIS',
            'DESTINATION_CITY': 'BORDEAUX',
            'OUTWARD_DATE': '30/09/2017',
            'TRAVEL_TYPE': 'AS',
            'OUTWARD_SCHEDULE_TYPE': 'DEPARTURE_FROM',
            'OUTWARD_TIME': '07h'
            }
    s = requests.Session()
    r = s.post(url, headers=headers, data=formData, proxies = proxyDict)
print(r)
print(r.headers)

首先我不明白为什么我会得到 200 http 代码...... 另外,我唯一能登陆的是一个错误页面(在Request.history之后)

print(r.history)
print(r.history[0].headers["Location"])
print(r.history[1].headers["Location"])
print(r.history[2].headers["Location"])
print(r.history[3].headers["Location"])

手动做同样的事情并观察发生的情况,我可以看到填写表格将我重定向到:

https://www.voyages-sncf.com/recherche-en-cours?hid=2BH,

然后访问 voyages-sncf.com/vsc/proposals/findProposals?hid=2BH,

最后到 voyages-sncf.com/proposition?clientId=4765cf49-d109-4a93-83ff-3c21182d7891&language=fr&country=FR,那里有价格和时间。

我认为请求可以处理重定向,但我一定错过了一些东西...... 有人可以解释一下这是怎么回事吗?

python forms post python-requests
1个回答
0
投票

在这里查看我的答案https://stackoverflow.com/a/78845896/364818

简单地说,

requests
被故意破坏,在重定向后将 POST 转换为 GET,以模仿浏览器被破坏的方式...

© www.soinside.com 2019 - 2024. All rights reserved.