Python类错误AttributeError

时间:2017-01-03 19:24:41

标签: python

我有一个像

这样的课程
from robobrowser import RoboBrowser
class myclass:
    def __init__(self):
        self.browser = RoboBrowser(history=True,\
        user_agent='Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0)'\
        Gecko/20100101 Firefox/40.1,parser='lxml'

    def test(self,text):
        self.browser.open('https://www.url.com/'+urlthread)
        return self.browser.find(class_='postfoot').find(class_='ip').get('title')[5::]

但如果我打电话:

In [0]: mc=myclass()
In [1]: mc.test('textblabla')
AttributeError: 'NoneType' object has no attribute 'find'

所以,为了调试,我在控制台中尝试了:

In [0]: mc=myclass()
In [1]: brw=mc.browser
In [2]: brw.open('http://www.url.com/textblabla')
In [3]: brw.find(class_='postfoot').find(class_='ip').get('title')[5::]
Out[3]: 'WORKS FINE'

我无法理解为什么它实际上在控制台中工作而不是在班级......

你能帮帮我吗?非常感谢

1 个答案:

答案 0 :(得分:0)

错误在于:

RoboBrowser(history=True,\
        user_agent='Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0)'\
        Gecko/20100101 Firefox/40.1,parser='lxml'

\用于多行字符串连接。 RoboBrowser()初始化中存在错误。

应采用以下格式:

RoboBrowser(session=None, parser=None, user_agent=None,
                 history=True, timeout=None, allow_redirects=True, cache=False,
                 cache_patterns=None, max_age=None, max_count=None, tries=None,
                 multiplier=None)