1
次のコードオーバーライドパイソンMechanize.Browser.open()メソッド
#!/usr/bin/env python
import mechanize
class MechanizeSubclass(mechanize.Browser):
def __init__(self,
factory=None,
history=None,
request_class=None,
):
mechanize.Browser.__init__(self, factory, history, request_class)
def open(self, url, data=None,
timeout=mechanize._sockettimeout._GLOBAL_DEFAULT_TIMEOUT):
mechanize.Browser.open(self, url, data, timeout=timeout)
subclass = MechanizeSubclass()
subclass.open('https://uncjobs.northcarolina.edu/applicants/jsp/shared/Welcome_css.jsp')
print subclass.response().read()
私はMechanizeのコードを見て、Browser.open()メソッドが定義されている
mechanize._response.httperror_seek_wrapper: HTTP Error 302: Moved Temporarily
エラーを生成よう:
def open(self, url, data=None,
timeout=_sockettimeout._GLOBAL_DEFAULT_TIMEOUT):
return self._mech_open(url, data, timeout=timeout)
と私は私のサブクラスでopen()メソッドを変更した場合、これを一致させる:
class MechanizeSubclass(mechanize.Browser):
...
def open(self, url, data=None,
timeout=mechanize._sockettimeout._GLOBAL_DEFAULT_TIMEOUT):
return self._mech_open(url, data, timeout=timeout)
それは正常に動作します。しかし、私はまだmechanize.Browser.open(self、url、data、timeout = timeout)を使った最初の定義がうまくいかない理由はまだ分かりません。彼らは同等ではありませんか?これは、機械翻訳0.2.5のPython 2.6です。
それはそれだった - それは今働いている。 –