相关疑难解决方法(0)

使用来自Python 2的urllib2发出HTTP HEAD请求

我正在尝试使用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)

然后它工作正常

python urllib2 head python-2.7

23
推荐指数
1
解决办法
2万
查看次数

标签 统计

head ×1

python ×1

python-2.7 ×1

urllib2 ×1