RuntimeError:解析HTML时超出了最大递归深度

时间:2017-03-30 23:03:09

标签: python html parsing

我正在测试一个程序,我试图从每个HTML标记中提取所有文本。它似乎有效,直到我覆盖for i in a: if 'default' in i['tags']: output = i['hostname']函数。

我收到错误:

__init__

该计划在这里:

 File "./html.py", line 9, in __init__
    TransParser.__init__(self)
  File "./html.py", line 9, in __init__
    TransParser.__init__(self)
  File "./html.py", line 9, in __init__
    TransParser.__init__(self)
  File "./html.py", line 9, in __init__
    TransParser.__init__(self)
RuntimeError: maximum recursion depth exceeded

2 个答案:

答案 0 :(得分:2)

class TransParser(HTMLParser):
    def __init__(self):
        TransParser.__init__(self)
        #         ^^^ You are calling the same constructor recursively.

<强>修正

class TransParser(HTMLParser):
    def __init__(self):
        HTMLParser.__init__(self)
        ..
        ..

答案 1 :(得分:2)

class TransParser(HTMLParser):
    def __init__(self):
        TransParser.__init__(self)
        self.trans_data = self.rawdata

你想在这做什么? init 方法调用自身;这是无限递归。你的意思是打电话给父母的 init 方法吗?那将是

        super().__init__(self)