【问题标题】:Python Requests library returns wrong status codePython Requests 库返回错误的状态码
【发布时间】:2013-04-24 16:47:38
【问题描述】:

下面的 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 请求 v1.2.0。

【问题讨论】:

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


    【解决方案1】:

    您的特定服务器似乎需要 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 在此服务器上都会失败。

    【讨论】:

    • 这很奇怪,因为请求默认发送一个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 2014-09-03
    • 2012-07-07
    相关资源
    最近更新 更多