Python Requests库返回错误的状态代码

时间:2013-04-24 16:47:38

标签: python-2.7 http-status-code-403 python-requests

下面的Python代码返回'403':

import requests
url = 'http://bedstardirect.co.uk/star-collection-braemar-double-bedstead.html'
r = requests.get(url)
print r.status_code

但是这个页面是有效的,脚本应该返回'200',下面的perl脚本也是如此:

use WWW::Mechanize;
my $mech = WWW::Mechanize->new();
my $url = 'http://bedstardirect.co.uk/star-collection-braemar-double-bedstead.html';
$mech->get($url);
print $mech->status,"\n";

我还在Firefox中检查了Firebug,所有请求都有一个'200'状态代码。

我使用Python Requests v1.2.0。

1 个答案:

答案 0 :(得分:6)

似乎您的特定服务器需要User-Agent标头。

尝试:
r = requests.get('http://bedstardirect.co.uk/star-collection-braemar-double-bedstead.html', headers={'User-Agent': 'a user agent'})

编辑:
对我的计算机的请求的默认用户代理名称为:python-requests/1.2.0 CPython/2.7.4 Darwin/12.3.0

经过一些测试后,我发现任何包含单词python的User-Agent都会在此服务器上失败。