python中的HEAD请求未按预期工作
我试图使用以下代码检查Python中任何URL的状态代码python中的HEAD请求未按预期工作,python,http-headers,urllib2,Python,Http Headers,Urllib2,我试图使用以下代码检查Python中任何URL的状态代码 class HeadRequest(urllib2.Request): def get_method(self): return "HEAD" 当我这样使用它时: response = urllib2.urlopen(HeadRequest("http://www.nativeseeds.org/")) 它引发以下异常: HTTPError: HTTP Error 503: Service Temporaril
class HeadRequest(urllib2.Request):
def get_method(self):
return "HEAD"
当我这样使用它时:
response = urllib2.urlopen(HeadRequest("http://www.nativeseeds.org/"))
它引发以下异常:
HTTPError: HTTP Error 503: Service Temporarily Unavailable
但是当我打开上面的URL时“http://www.nativeseeds.org/在firefox/restclient中,它返回200个状态码
非常感谢您的帮助。您看到的问题与Python无关。网站本身似乎需要的不仅仅是一个HEAD请求。即使是简单的telnet会话也会导致以下错误:
$ telnet www.nativeseeds.org 80
Trying 208.113.230.85...
Connected to www.nativeseeds.org (208.113.230.85).
Escape character is '^]'.
HEAD / HTTP/1.1
Host: www.nativeseeds.org
HTTP/1.1 503 Service Temporarily Unavailable
Date: Wed, 26 Sep 2012 14:29:33 GMT
Server: Apache
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=iso-8859-1
尝试添加更多的标题;http
命令行客户端确实收到200响应:
$ http -v head http://www.nativeseeds.org
HEAD / HTTP/1.1
Host: www.nativeseeds.org
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Accept-Encoding: identity, deflate, compress, gzip
Accept: */*
User-Agent: HTTPie/0.2.2
HTTP/1.1 200 OK
Date: Wed, 26 Sep 2012 14:33:21 GMT
Server: Apache
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Expires: Mon, 1 Jan 2001 00:00:00 GMT
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: f65129b0cd2c5e10c387f919ac90ad66=34hOijDSzeskKYtULx9V83; path=/
Last-Modified: Wed, 26 Sep 2012 14:33:23 GMT
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 20
Content-Type: text/html; charset=utf-8
您看到的问题与Python无关。网站本身似乎需要的不仅仅是一个HEAD请求。即使是简单的telnet会话也会导致以下错误:
$ telnet www.nativeseeds.org 80
Trying 208.113.230.85...
Connected to www.nativeseeds.org (208.113.230.85).
Escape character is '^]'.
HEAD / HTTP/1.1
Host: www.nativeseeds.org
HTTP/1.1 503 Service Temporarily Unavailable
Date: Wed, 26 Sep 2012 14:29:33 GMT
Server: Apache
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=iso-8859-1
尝试添加更多的标题;http
命令行客户端确实收到200响应:
$ http -v head http://www.nativeseeds.org
HEAD / HTTP/1.1
Host: www.nativeseeds.org
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Accept-Encoding: identity, deflate, compress, gzip
Accept: */*
User-Agent: HTTPie/0.2.2
HTTP/1.1 200 OK
Date: Wed, 26 Sep 2012 14:33:21 GMT
Server: Apache
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Expires: Mon, 1 Jan 2001 00:00:00 GMT
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: f65129b0cd2c5e10c387f919ac90ad66=34hOijDSzeskKYtULx9V83; path=/
Last-Modified: Wed, 26 Sep 2012 14:33:23 GMT
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 20
Content-Type: text/html; charset=utf-8
,get_方法只返回'get'或'POST'
,get\u方法只返回'get'或'POST'
经过一些调查,网站要求
接受和用户代理请求头都已设置。否则,它返回一个503。这个坏得很。它似乎也在进行用户代理嗅探。使用curl时,我得到一个403:
$ curl --head http://www.nativeseeds.org/
HTTP/1.1 403 Forbidden
Date: Wed, 26 Sep 2012 14:54:59 GMT
Server: Apache
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Set-Cookie: f65129b0cd2c5e10c387f919ac90ad66=PjZxNjvNmn6IlVh4Ac-tH0; path=/
Vary: Accept-Encoding
Content-Type: text/html
但如果我将用户代理设置为Firefox,则效果良好:
$ curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" --head http://www.nativeseeds.org/
HTTP/1.1 200 OK
Date: Wed, 26 Sep 2012 14:55:57 GMT
Server: Apache
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Expires: Mon, 1 Jan 2001 00:00:00 GMT
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: f65129b0cd2c5e10c387f919ac90ad66=ykOpGnEE%2CQOMUaVJLnM7W0; path=/
Last-Modified: Wed, 26 Sep 2012 14:56:27 GMT
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
它似乎可以使用以下模块工作:
经过一些调查后,网站要求设置接受和用户代理请求头。否则,它返回一个503。这个坏得很。它似乎也在进行用户代理嗅探。使用curl时,我得到一个403:
$ curl --head http://www.nativeseeds.org/
HTTP/1.1 403 Forbidden
Date: Wed, 26 Sep 2012 14:54:59 GMT
Server: Apache
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Set-Cookie: f65129b0cd2c5e10c387f919ac90ad66=PjZxNjvNmn6IlVh4Ac-tH0; path=/
Vary: Accept-Encoding
Content-Type: text/html
但如果我将用户代理设置为Firefox,则效果良好:
$ curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" --head http://www.nativeseeds.org/
HTTP/1.1 200 OK
Date: Wed, 26 Sep 2012 14:55:57 GMT
Server: Apache
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Expires: Mon, 1 Jan 2001 00:00:00 GMT
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: f65129b0cd2c5e10c387f919ac90ad66=ykOpGnEE%2CQOMUaVJLnM7W0; path=/
Last-Modified: Wed, 26 Sep 2012 14:56:27 GMT
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
它似乎可以使用以下模块工作:
bertobot此不适用于上述URL它仍然返回503的状态代码bertobot此不适用于上述URL它仍然返回503Martijin的状态代码感谢回复我需要添加哪些标题以及如何添加?如果添加Accept
和User Agent
标题,您将获得200而不是503。这个网站坏得很厉害谢谢你回复我需要添加哪些标题以及如何添加?如果你添加Accept
和User Agent
标题,你会得到200而不是503。这个网站坏得很厉害