使這種方式,所有我需要做的就是輸入試圖繼承機械化的瀏覽器,並創建一個登錄方法
browser = MyBrowser()
browser.login()
讓我的Python腳本登錄的未來。這是我到目前爲止有:
import mechanize
class MyBrowser(mechanize.Browser, object):
_username = 'username'
_password = 'password'
def __init__(self):
super(MyBrowser, self).__init__()
self.set_handle_robots(False)
self.set_proxies({"http" : "http://proxy.me.com:80"})
def login(self):
self.open('http://login.mypage.com/')
self.select_form(nr=0)
self['name'] = self._username
self['pass'] = self._password
self.submit()
我曾提出,工作正常使用相同的方法學登錄功能。但現在,當我打電話browser.login(),我得到這個:
self['name'] = self._username
TypeError: 'MyBrowser' object does not support item assignment
爲什麼不打電話select_form行爲相同的方式,當它是這樣的一個方法的一部分?
非常感謝您的回答!不幸的是,這是行不通的。我想要做的就是讓它將這些值賦給應該是'self'對象的一部分,然後使用'self.select_form(nr = 0)' ' '這在這裏找到的模型:[使用機械化和分裂(下載3)用Python下載登錄保護的頁面](http://ubuntuincident.wordpress.com/2011/11/08/download-login-protected-pages-with -python-using-mechanize-and-splinter-part-3 /) – Andy
@我編輯了我的答案。 – Lior
閱讀該線索獲取更多信息: http://stackoverflow.com/questions/1021464/python-how-to-call-a-property-of-the-base-class-if-this-property-is-being -overw – Lior