Python HTMLParser对象删除

时间:2013-08-16 21:51:34

标签: python python-2.7 html-parsing

我正在尝试使用html URL获取多个图像,但每次调用它都附加到已经解析的图像列表

from HTMLParser import HTMLParser

class MyHTMLParser(HTMLParser):
    images = []
    def handle_starttag(self, tag, attrs):
        if tag == "a":
            for attr in attrs:
                if attr[0] == "href" and attr[1].startswith("image"):
                    self.images.append(attr[1])


def get_sysimage(url):
    response = urllib2.urlopen(url)
    html = response.read()
    parser = MyHTMLParser()
    parser.feed(html)
    images = parser.images
    print images

for url in urllist:
    get_sysimage(url)

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您已将images定义为类级变量,因此它与解析器的所有实例共享。试试这个:

class MyHTMLParser(HTMLParser):

    def __init__(self, *args, **kwargs):
        super(MyHTMLParser, self).__init__(*args, **kwargs)
        self.images = []

这将在创建实例时为每个实例创建一个新的独立images列表。