下面的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。
答案 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都会在此服务器上失败。