检查响应标头后中止请求

时间:2013-03-21 13:47:59

标签: python python-3.x urllib

我有一个脚本通过urllib.request的{​​{1}}请求网址,然后获取urlopen

我得到这些标题之后我不想继续处理这个请求,所以我现在只是将它保留原样而忘记它,但这似乎是我要打开连接,也许是服务器发送的内容会被忽略。

如何正确中止请求?

info()

1 个答案:

答案 0 :(得分:1)

我认为您想要的是HEAD请求。像

这样的东西
>>> import httplib
>>> c = httplib.HTTPConnection("www.google.co.uk")
>>> c.request("HEAD", "/index.html")
>>> r = c.getresponse()
>>> r.getheaders()
[('x-xss-protection', '1; mode=block'), ('transfer-encoding', 'chunked'), ('set-cookie', 'PREF=ID=7867b0a5641d5f7b:FF=0:TM=1363882090:LM=1363882090:S=EXLl2JgBqzMKODcq; expires=Sat, 21-Mar-2015 16:08:10 GMT; path=/; domain=.google.co.uk, NID=67=qElAph6eqHyYKbh995ivP4B-21YRDRED4-uRXx0AvC3vLpv0SF1LkdsI2k6Hg1IhsatrVVqWf2slcMCaQsAZwZ89YfU0F1iPVBdt9PC2FItff31oRJ3gvhJVTQLa_RAt; expires=Fri, 20-Sep-2013 16:08:10 GMT; path=/; domain=.google.co.uk; HttpOnly'), ('expires', '-1'), ('server', 'gws'), ('cache-control', 'private, max-age=0'), ('date', 'Thu, 21 Mar 2013 16:08:10 GMT'), ('p3p', 'CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."'), ('content-type', 'text/html; charset=ISO-8859-1'), ('x-frame-options', 'SAMEORIGIN')]
>>>

来自w3.org

  

HEAD方法与GET相同,只是服务器不能   在响应中返回一个消息体。元信息包含   在HTTP头中响应HEAD请求应该是相同的   响应GET请求发送的信息。这种方法可以   用于获取有关该隐含的实体的元信息   请求而不转移实体主体本身。这个方法是   经常用于测试超文本链接的有效性,可访问性,   和最近的修改。

     

对HEAD请求的响应可能是可缓存的   响应中包含的信息可用于更新a   以前从该资源缓存的实体。如果是新字段值   表示缓存的实体与当前实体不同(如   将通过内容长度,内容-MD5,ETag或更改来表示   Last-Modified),然后缓存必须将缓存条目视为陈旧。