Wiz*_*ard 23 python urllib2 head python-2.7
我正在尝试使用Python 2对页面执行HEAD请求.
我在尝试
import misc_urllib2
.....
opender = urllib2.build_opener([misc_urllib2.MyHTTPRedirectHandler(), misc_urllib2.HeadRequest()])
Run Code Online (Sandbox Code Playgroud)
用misc_urllib2.py含
class HeadRequest(urllib2.Request):
def get_method(self):
return "HEAD"
class MyHTTPRedirectHandler(urllib2.HTTPRedirectHandler):
def __init__ (self):
self.redirects = []
def http_error_301(self, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_301(
self, req, fp, code, msg, headers)
result.redirect_code = code
return result
http_error_302 = http_error_303 = http_error_307 = http_error_301
Run Code Online (Sandbox Code Playgroud)
但我得到了
TypeError: __init__() takes at least 2 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)
如果我这样做
opender = urllib2.build_opener(misc_urllib2.MyHTTPRedirectHandler())
Run Code Online (Sandbox Code Playgroud)
然后它工作正常
Paw*_*żak 57
这很好用:
import urllib2
request = urllib2.Request('http://localhost:8080')
request.get_method = lambda : 'HEAD'
response = urllib2.urlopen(request)
print response.info()
Run Code Online (Sandbox Code Playgroud)
在python中使用快速和脏的HTTPd进行测试:
Server: BaseHTTP/0.3 Python/2.6.6
Date: Sun, 12 Dec 2010 11:52:33 GMT
Content-type: text/html
X-REQUEST_METHOD: HEAD
Run Code Online (Sandbox Code Playgroud)
我添加了一个自定义标题字段X-REQUEST_METHOD来显示它的工作原理:)
这是HTTPd日志:
Sun Dec 12 12:52:28 2010 Server Starts - localhost:8080
localhost.localdomain - - [12/Dec/2010 12:52:33] "HEAD / HTTP/1.1" 200 -
Run Code Online (Sandbox Code Playgroud)
编辑:还有httplib2
import httplib2
h = httplib2.Http()
resp = h.request("http://www.google.com", 'HEAD')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15353 次 |
| 最近记录: |