带有python请求的标头的奇怪行为

时间:2017-05-31 22:39:07

标签: python python-requests

您能告诉我如何将请求版本设置为低于urllib的工作吗?我不知道出了什么问题。实际上,需要referer标头,以便我的请求不会重定向到主页。 urllib版本似乎正确处理,然后我可以下载该文件。重定向到主页的请求案例不是这种情况。似乎没有考虑referer标题,我被重定向到主页。

由于

urllib version

import urllib.request
url = "http://www.truefx.com/dev/data/2017/MARCH-2017/EURUSD-2017-03.zip"
request = urllib.request.Request(url)
request.add_header('Referer', 'http://www.truefx.com/')
response = urllib.request.urlopen(request)
# Check for redirect
print("Final url:" + response.geturl())
print("Code: " + str(response.code))
print("File size: " + str(response.length))

输出继电器:

> Final url:http://www.truefx.com/dev/data/2017/MARCH-2017/EURUSD-2017-03.zip
> Code: 200
> File size: 53041630

请求版本

url = "http://www.truefx.com/dev/data/2017/MARCH-2017/EURUSD-2017-03.zip"
headers = {"referer": "http://www.truefx.com/?page=download"}
r = requests.get(url, headers)
print(r.url)
print(r.status_code)

输出:

http://www.truefx.com
200

1 个答案:

答案 0 :(得分:0)

标头dict作为另一个参数传递。替换:

r = requests.get(url, headers)

r = requests.get(url, headers=headers)

解决了这个问题。