2013-08-16 32 views
0

我試圖使用HTML的URL,但每次調用它被追加到它已經被解析的Python的HTMLParser對象刪除

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) 

什麼我做錯了圖像的列表以獲得多張圖片?

回答

0

您已將images定義爲類級變量,因此它將與解析器的所有實例共享。試試這個:

class MyHTMLParser(HTMLParser): 

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

如創建實例將爲每個實例創建一個新的獨立images名單。