【发布时间】:2017-07-14 15:31:57
【问题描述】:
我目前正在使用 python 请求模块在网站上执行自动 HTTP 任务。 问题是我在控制台上得到的结果与在浏览器上不同。
这是我在浏览器上发出 POST 请求时得到的结果:
这是我通过 python requests 模块发出 POST 请求并在请求上运行.headers 方法时得到的:
{
'Date': 'Fri, 14 Jul 2017 15:19:22 GMT',
'Content-Type': 'text/html; charset=utf-8',
'Transfer-Encoding': 'chunked',
'Connection': 'keep-alive',
'Cache-Control': 'private',
'Location': '/cart/view',
'Set-Cookie': 'png.notice=9Hz8GWQ38JQZqTrqcsnn1J5nfgIZt71orHtf71mI+rwqFpQg4RnV7BqZni/GgIS/SmUnC4jgnhjQuDhZNW2adxeLctG+bToT0wTTbgxe40t5RmbVv1viuH2gkL1eH2xN3IavOUBhVXm+JlQrmVnHLocqjgvWi8wAClLYmrShY1U2ege9; expires=Fri, 14-Jul-2017 15:34:03 GMT; path=/; HttpOnly',
'X-Powered-By': 'ASP.NET',
'X-UA-Compatible': 'IE=Edge,chrome=1',
'Server': 'cloudflare-nginx',
'CF-RAY': '37e575befbf43c35-CDG'
}
请注意这两个结果是如何完全不同的。 我正在尝试在响应标头中获取“位置”标头(以“https://live.adyen.com/hpp...”开头的标头。 我在这里做错了什么?
编辑:这是我的源代码:
request = session.post('https://www.nakedcph.com/cart/process', data=user_info)
request.url
# outputs 'https://www.nakedcph.com/cart/view' (probably the issue)
request.headers
# outputs the headers (but not all of them?)
PS:发出 POST 请求后,网站会从 Response 标头重定向到“Location”标头内的 URL。
【问题讨论】:
-
你是如何通过python发出请求的?你的代码是什么样的?您通过 python 传递的标头与浏览器的标头不相同。这是一个重要的细节。
-
刚刚添加了我的源代码。我不明白请求模块正在输出什么样的标头。是响应头还是请求头?
-
请求标头。试试
session.post('https://www.nakedcph.com/cart/process', headers={'User-Agent' : 'Mozilla/5.0'}, data=user_info) -
它输出相同的标题。我的猜测是它打印出 request.url 的标头,这与我用来制作 POST 的 url 不同。
-
发布 POST 后网站似乎正在重定向到另一个 url。
标签: python http http-post python-requests